2018年9月27日 星期四

week03_鄭昕恬

今天一開始,老師先SHOW給我們看了幾張很酷的圖片,增加大家對用程式化圖的興趣
也給我們看了一個70幾歲,卻對程式還很有熱忱的老人,陳舒舒的作品,讓我們思考,是不是也能做出這樣的作品。


(1)先簡單的寫出一格圖形
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));
  }
}


(2)在寫出更精緻的圖片
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));
  }
 }
}





(3)試試能不能把旋轉的圖畫出來,改變三個頂點來畫出橢圓的軌跡

(4)參考別人的圖案,來試著畫出圖形
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=20;cx<800;cx+=40){
    for(int cy=20;cy<400;cy+=40){
      //ellipse(cx,cy,30,30);
      myTriangle(cx,cy);
    }
  }
}






(5)試著寫出會動的馬力歐
PImage imgMario;
float marioX=0, marioY=0;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.jpg");
}

void draw(){
  background(255);
  image(imgMario, marioX, marioY, 100, 150);
}
void keyPressed(){
    if(keyCode==UP) {marioY-=5;}
    if(keyCode==DOWN) {marioY+=5;}
    if(keyCode==LEFT) {marioX-=5;}
    if(keyCode==RIGHT) {marioX+=5;}
}



(6)寫出會跳動的馬力歐

PImage imgMario;
float marioX=0, marioY=100, marioVX=5, marioVX=0, marioAX=0, marioAY=0.1;
void setup(){
  size(400,600);
  imgMario = loadImage("mario.jpg");
}

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(marioY>600-150) marioVY*=-0.9;

}
void keyPressed(){
    if(keyCode==UP) {marioY-=5;}
    if(keyCode==DOWN) {marioY+=5;}
    if(keyCode==LEFT) {marioX-=5;}
    if(keyCode==RIGHT) {marioX+=5;}
}









沒有留言:

張貼留言