2020年10月26日 星期一

week07-畫三角形

week07


*用點畫出圓*



程式碼:
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);
}
 


*利用三角函數畫三角形*


程式碼:
size(500,500);
beginShape();
for(int angle=0;angle<360;angle+=120){
  float angle2 = radians(angle);
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  vertex(x,y);
}
endShape(CLOSE);

*滑鼠旋轉滑鼠,三角形跟著轉*

程式碼:
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);
  }
  endShape(CLOSE);
}
*三角形跟著滑鼠移動*
程式碼:
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);
  }
  endShape(CLOSE);
}
*三角形會自己旋轉,滑鼠可以移動它*
*1sec = 60frame
程式碼:
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);
  }
  endShape(CLOSE);
}
*接水果遊戲*
程式碼:
float [] fruitX=new float[10];
float [] fruitY=new float[10];
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,80,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);///沒接住,水果重生
      }
    }
  }
}

WEEK07 KILL THAT SHIT

STEP 1:畫出三角形








我想接水果!!!





week07

旋轉的三角形

 void setup()

{

  size(500,500);

}

void draw()

{

  ///background(255);

  beginShape();

  for(int angle=0;angle<360;  angle+=120)

  {

    float angle2 = radians(angle + 10*frameCount);

    float x = mouseX+cos(angle2)*50;

    float y = mouseY+sin(angle2)*50;

    vertex(x,y);

  }

  endShape(CLOSE);

}

                                                                            接水果

//float fruitX=150, fruitY=0;
float [] fruitX = new float[10];
float [] fruitY = new float[10];
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 ){// kR ?
score+= 10; // 
fruitY[i]=0; fruitX[i]=random(50, 450);
}else{
fruitY[i]=0; fruitX[i]=random(50, 450);
}//水果直接重生
}
}
}


丹ㄉ形狀 很型ㄛ

 今天我們要來弄形狀

我們要來先確認方位

我們可以更改angle來改變我們要的頂點

再來 我們可以用shape讓圓變實心
但我們發現圓有個破口
所以我們用CLOSE把那條線關起來
一樣更改angle可以改變圖形
然後我們可以用之前教的draw功能來讓圖形畫畫
讓他跟著滑鼠看看
我現在很想接水果
我們就來接水果



week07 圖形繪製

 

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);

}




多邊形


size(500,500);

beginShape();

for(int angle=0;angle<360;angle+=30){ //可調角度

    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);






圖形旋轉


size(500,500);

}

void draw(){

background(255); //殘影效果

beginShape();

for(int angle=0;angle<360;angle+=30){

    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);

}





接水果


color c1=color(0,255,255);

color c2=color(20,30,40);


void draw(){

   background(255);

   fill(c2);

   rect(kidX,kidY,50,80);

   kidX = mouseX;

   ellipse(fruitX,fruitY,60,80);

   fruitY++;

   if(fruitY>kidY){

      if(kidX < fruitX && fruitX < kidX+80){

         score+=10;

         fruitY=0;

         fruitX=random(50,450);

      }

      else{

        fruitY=0;

        fruitX=random(50,450);

      }

   }

}




接水果  隨機變色


float [] fruitX=new float[10];

float [] fruitY=new float[10];

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(){


  color c1=color(random(255),random(255),random(255));


   background(255);

   fill(c1);

   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);

        }

     }

  }

}










❀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);
      }//水果直接重生
    }
  }
}


week07 三角形,接水果遊戲

 今天教了三角形頂點座標

再來把三角形+了面和邊
接下來教了三角形會更隨著滑鼠中心座標移動
接下來可以讓三角形自動旋轉

void setup(){
size(500,500);
}
void draw(){
beginShape();
//background(255);
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);
接下來教了接水果小遊戲
float fruitX=150, fruitY=0;//宣告橢圓形
float kidX=150, kidY=450;//宣告底下要接的東西
int score=0;
void setup(){
  size(500,500);
}
void draw(){
  background(255);
  rect(kidX,kidY,50,80);//下面要接的東西
  kidX=mouseX;//可以移動底下要接的東西
  ellipse(fruitX,fruitY, 60, 80);//橢圓形在最上面的點
  fruitY++;//橢圓形往下掉
  if(fruitY>kidY){//如果水果掉得夠低
    if( kidX < fruitX && fruitX < kidX+80 ){
      score+= 10;//加分
      fruitY=0; fruitX=random(50,450);//水果重生
    }else{
      fruitY=0; fruitX=random(50,450);//水果重生
    }
  }
}
接下來水果會一直掉下來
float [] fruitX = new float[10];//java陣列
float [] fruitY = new float[10];
//float fruitX=150, fruitY=0;//宣告橢圓形
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);//水果重生
      }
    }
  }
}