Week03-1 dxdy
開啟processing,輸入以下程式碼
命名week03_1_dxdy
線以1的位置增長
Week03-2 random dxdy
開啟processing,輸入以下程式碼
命名week03_2_dxdy_random
Week03-3 random+陣列
開啟processing,輸入以下程式碼
void setup(){
size(500,500);
for(int i=0; i<20; i++){
x[i]=random(500);
y[i]=random(500);
dx[i]=random(-1,+1);
dy[i]=random(-1,+1);
}
}
float []x=new float[20];
float []y=new float[20];
float []dx=new float[20];
float []dy=new float[20];
void draw(){
background(0);
for(int i=0;i<20;i++){
ellipse(x[i],y[i],5,5);
x[i]+=dx[i];
y[i]+=dy[i];
if(x[i]<0 || x[i]>500) dx[i]=-dx[i]; //邊界反彈
if(y[i]<0 || y[i]>500) dy[i]=-dy[i];
}
}命名week03_3_dxdy_random_i 加入陣列Week03-4 nearline
開啟processing,加入以下程式碼
for(int k=0; k<20; k++){
stroke(255,0,0);
if(dist(x[i],y[i],x[k],y[k])<100)
line(x[i],y[i],x[k],y[k]);
}命名week03_4_nearline
把近的點連成線
Week03-5 line color
開啟processing,改變以下程式碼
for(int k=0; k<N; k++){ float d=dist(x[i],y[i],x[k],y[k]); stroke(2.55*(100-d)); //依距離改變顏色 if(d<100) line(x[i],y[i],x[k],y[k]); }
命名week03_5_stroke_army_size
線的顏色可照距離改變深淺
Week03-6 attraction
開啟processing,改變以下程式碼
if(d<100){ //距離夠近 line(x[i],y[i],x[k],y[k]); dx[i]+=(x[k]-x[i])*0.00003; //就加吸引力 dy[i]+=(y[k]-y[i])*0.00003; }
命名week03_6_attraction
加一點吸引力
沒有留言:
張貼留言