2020年10月26日 星期一

❀week07

畫出三角形

步驟一:

先找出規則
雖然一行就能寫完triangle(x1,y1,x2,y2,x3,y3);
但可以找出三角形神奇的值(如程式碼)
程式碼:
//triangle(x1,y1,x2,y2,x3,y3);
//triangle(50,0,0,90,100,90);
size(500,500);
for(int angle=0;angle<360; angle+=30){
  float angle2 = radians(angle);
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  ellipse(x,y,2,2);
}























步驟二:

試著更改角度
程式碼:
//triangle(x1,y1,x2,y2,x3,y3);
//triangle(50,0,0,90,100,90);
size(500,500);
beginShape();
for(int angle=0;angle<360; angle+=72){
  float angle2 = radians(angle);
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  vertex(x,y);//ellipse(x,y,2,2);
}
endShape(CLOSE);
























步驟三:

加入角度
程式碼:
//triangle(x1,y1,x2,y2,x3,y3);
//triangle(50,0,0,90,100,90);
void setup(){
  size(500,500);
}
void draw(){
  //background(255);
  beginShape();
  for(int angle=0;angle<360; angle+=120){
    float angle2 = radians(angle+mouseX);
    float x = 100+cos(angle2)*50;
    float y = 100+sin(angle2)*50;
    vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
}



























步驟四:

讓三角形動起來
程式碼:
//triangle(x1,y1,x2,y2,x3,y3);
//triangle(50,0,0,90,100,90);
void setup(){
  size(500,500);
}
void draw(){
  //background(255);
  beginShape();
  for(int angle=0;angle<360; angle+=120){
    float angle2 = radians(angle+mouseX);
    float x = mouseX+cos(angle2)*50;
    float y = mouseY+sin(angle2)*50;
    vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
}
























步驟五:

讓三角形旋轉
*1hr=60min 
1min=60sec
1sec=60frame
frameCount:第幾個frame

*角度有兩種:
1.degree度(360度的世界)
2.sin()cos()用radians[弧度/徑度(PI世界)]

程式碼:
//triangle(x1,y1,x2,y2,x3,y3);
//triangle(50,0,0,90,100,90);
void setup(){
  size(500,500);
}
void draw(){
  //background(255);
  beginShape();
  for(int angle=0;angle<360; angle+=120){
    float angle2 = radians(angle+frameCount);
    float x = mouseX+cos(angle2)*100;
    float y = mouseY+sin(angle2)*100;
    vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
}
























加分題:








接水果遊戲:

程式碼:
void draw(){
  background(255);
  rect(kidX,kidY,50,80);
  kidX=mouseX;
  ellipse(fruitX,fruitY,60,80);
  fruitY++;
  if(fruitY>kidY){//水果掉得夠低
    if(kidX<fruitY && fruitX<kidX+80){//接到水果了
      score+=10;//加分水果重生
      fruitY=0;fruitX=random(50,450);
    }else{
      fruitY=0;fruitX=random(50,450);
    }//水果直接重生
  }
}


























用好多顆水果

程式碼:
//float fruitX=150,fruitY=0;
float [] fruitX = new float[10];//JAVA的陣列 vs. C陣列 float fluitX[10];
float [] fruitY = new float[10];//JAVA的陣列
float kidX=150,kidY=450;
int score=0;
void setup(){
  size(500,500);
  for(int i=0; i<10;i++){
    fruitX[i] = random(50,450);
    fruitY[i] = -i*100;
  }
}
void draw(){
  background(255);
  rect(kidX,kidY,50,80);
  kidX=mouseX;
  for(int i=0;i<10;i++){
    ellipse(fruitX[i],fruitY[i],60,80);
    fruitY[i]++;
    if(fruitY[i]>kidY){//水果掉得夠低
      if(kidX<fruitX[i] && fruitX[i]<kidX+80){//接到水果了
        score+=10;//加分水果重生
        fruitY[i]=0;fruitX[i]=random(50,450);
      }else{
        fruitY[i]=0;fruitX[i]=random(50,450);
      }//水果直接重生
    }
  }
}


沒有留言:

張貼留言