畫出三角形
步驟一:
先找出規則
雖然一行就能寫完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);
}//水果直接重生
}
}
}








沒有留言:
張貼留言