2018年9月27日 星期四

Week03徐如君

Week03
1.
先畫一個大圓
void setup(){
  size(500,500);   
}
void draw(){
  ellipse(250,250,480,480);
}
2.
畫出三角形
void setup(){
  size(500,500);   
}
void draw(){
  ellipse(250,250,480,480);
  for(float angle=0; angle<PI*2; angle+=PI/3){
  triangle(250,250,(畫出三角形)
          250+240*cos(angle),250+240*sin(angle),
          250+240*cos(angle+PI/3),250+240*sin(angle+PI/3));
  }
}(用角度值來計算長度畫出三角形)
用cos(angle)和sin(angle)來畫
(250,250)是圓心的部分
240是半徑
3.
把240改成R
void setup(){
  size(500,500);   
}
void draw(){
  ellipse(250,250,480,480);
  for(float angle=0; angle<PI*2; angle+=PI/3){
    for(int R=0; R<=240; R+=20){
      noFill();
  triangle(250,250,
          250+R*cos(angle),250+R*sin(angle),
          250+R*cos(angle+PI/3),250+R*sin(angle+PI/3));
    }
  }
}

畫出三角形

1.
先畫出圓形
void setup(){
  size(800,400); 
}
void draw(){
  background(255);
  for(int cx =10; cx<800; cx+=40)  {
    for(int cy=10; cy<400;cy+=40)    {
   ellipse(cx,cy,30,30);
    }
  }
}
2.
畫出三角形
void setup(){
  size(800,400); 
}
void myTriangle(int cx, int cy){
  float a=-PI/2;
  for(int R=15; R>0; R-=5){
    triangle(cx+R*cos(a), cy+R*sin(a),
            cx+R*cos(a+2*PI/3), cy+R*sin(a+2*PI/3),
            cx+R*cos(a-2*PI/3), cy+R*sin(a-2*PI/3));
  }
}
void draw(){
  background(255);
  for(int cx =10; cx<800; cx+=40)  {
    for(int cy=10; cy<400;cy+=40)    {
   myTriangle(cx,cy);
    }
  }
}

畫出Mario

1.

PImage imgMario;
float marioX=0, marioY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");//Only Once!!(讀圖檔)
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
}//Don't load any image in draw()
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}
注意:圖檔要在setup中讀,不能在draw裡面
2.
讓mario掉下去
PImage imgMario;
float marioX=0, marioY=0, marioVX=2, marioVY=0,marioAX=0, marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");//Only Once!!
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
  marioX +=marioVX;   marioY +=marioVY;
  marioVX+=marioAX;   marioVY+=marioAY;
}//Don't load any image in draw()
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}
如果去背,可以明顯看出mario掉下去
3.
讓mario跳來跳去!!
PImage imgMario;
float marioX=0, marioY=0, marioVX=2, marioVY=0,marioAX=0, marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.png");//Only Once!!
}
void draw(){
  background(255);
  image(imgMario,marioX,marioY,100,150);
  marioX +=marioVX;   marioY +=marioVY;
  marioVX+=marioAX;   marioVY+=0.98;
  if(marioY>600-150) marioVY*=-0.9;
  if(marioX>400-100) marioVX*=-1;
  if(marioY<0) marioVY*=-0.9;
  if(marioX<0) marioVX*=-1;
}//Don't load any image in draw()
void keyPressed(){
  if(keyCode==UP)    {marioY-=5;}
  if(keyCode==DOWN)  {marioY+=5;}
  if(keyCode==LEFT)  {marioX-=5;}
  if(keyCode==RIGHT) {marioX+=5;}
}

沒有留言:

張貼留言