2012年11月27日 星期二

HW09

1.
程式碼:
size(200,200);
//1.平移原點
translate(100, 100);//平移
//2.畫線
line(0,0,100,0);
line(0,0,-100,0);
line(0,0,0,100);
line(0,0,0,-100);
//3.轉角度並畫出正方形
rotate(50*(PI/188));//旋轉
fill(255,0,0);
rect(0, 0, 50, 50);

rotate(120*(PI/188));//旋轉
fill(0,255,64);
rect(0, 0, 50, 50);

rotate(130*(PI/188));//旋轉
fill(0,0,255);
rect(0, 0, 50, 50);

2.


程式碼:

 int RD=5;
void setup() {
size(200,200);
}

void draw(){
background(255);
frameRate(1);
//1.平移原點
translate(100, 100);
//2.畫線
line(0,0,100,0);
line(0,0,-100,0);
line(0,0,0,100);
line(0,0,0,-100);
//3.先決定第一個葉片
rotate(RD*(PI/180));
fill(235,10,101);
rect(0, 0, 50, 20);
//4.轉角度並畫出正方形
for(int k=2;k<=10;k++){
rotate(36*(PI/180));
fill(0,0,255);
rect(0, 0, 50, 20);
}
RD+=5;
}

3.

程式碼:

 int num = 50; 
int[] x = new int[num]; 
int[] y = new int[num]; 
void setup() { 
size(500, 500); 

noStroke(); 
smooth();
fill(255, 102);

void draw() { 
background(0); 
frameRate(20);
// Shift the values to the right 
for (int i = num-1; i > 0; i--) { 
x[i] = x[i-1]; 
y[i] = y[i-1]; 

// Add the new values to the beginning of the array 
x[0] = mouseX; 
y[0] = mouseY; 
// Draw the circles
for (int i = 0; i < num; i++) { 
fill(random(255),random(255),random(255));
ellipse(x[i], y[i], i/2.0, i/2.0); 

}

心得:
這次我覺得最困難的部分是第一跟第二個,要計算角度,一開始做第一個的時候,我對角度很沒概念,所以就亂湊亂湊,
看到形狀跟老師上面的一樣就覺得應該可以了,可是第二個就不能這樣了,第二個有10個葉片,所以很難去想角度,聽了老師的講解之後,我知道了原來每個葉片最重要的是先決定第一個角度,之後在累加上去,耴此一10個夜片就可以平分這360度,接著要讓他動的話,就要靠frameRate去寫,然而在這我覺得我做得還不錯,因為一開始想到要讓風扇"動",就想到frameRate,所以我很開心^______^


沒有留言:

張貼留言