Week03
week03_1_x_y_dx_dy
500*500視窗、設x,y、畫圓點 ▼
加速度dx,dy ▼
//1. 點線面 void setup(){ size(500,500); } float x=250, y=250; float dx=1, dy=1; void draw(){ ellipse(x,y, 5,5); x+=dx; y+=dy; }
week03_2_bg_random
random決定點往哪跑、background(0) ▼
碰到牆壁回彈(位移相反) ▼
void setup(){ size(500,500); dx = random(-1,+1); dy = random(-1,+1); } float x=250, y=250; float dx=1, dy=1; void draw(){ background(0); ellipse(x,y, 5,5); x+=dx; y+=dy; if(x<0 || x>500) dx = -dx; if(y<0 || y>500) dy = -dy; }
Week03_3_array_for_loop
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); //dx = random(-1,+1); dy[i] = random(-1,+1); //dy = random(-1,+1); } } float[]x = new float[20];//float x=250, y=250; float[]y = new float[20]; float[]dx = new float[20];//float dx=1, dy=1; 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_4_near_line
兩點距離<100 ,就連在一起 ▼
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); //dx = random(-1,+1); dy[i] = random(-1,+1); //dy = random(-1,+1); } } float[]x = new float[20];//float x=250, y=250; float[]y = new float[20]; float[]dx = new float[20];//float dx=1, dy=1; float[]dy = new float[20]; void draw(){ background(0); for(int i=0; i<20; i++){ ellipse(x[i],y[i], 5,5); 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]); } 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_5_stroke_array_size
數量設成N、顏色變紅 ▼
距離設d、顏色隨距離改變 ▼
void setup(){ size(500,500); for(int i=0; i<N; i++){ x[i]=random(500); y[i]=random(500); dx[i] = random(-1,+1); //dx = random(-1,+1); dy[i] = random(-1,+1); //dy = random(-1,+1); } } int N = 40; float[]x = new float[N];//float x=250, y=250; float[]y = new float[N]; float[]dx = new float[N];//float dx=1, dy=1; float[]dy = new float[N]; void draw(){ background(0); for(int i=0; i<N; i++){ ellipse(x[i],y[i], 5,5); 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]); } } 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_6_attraction
增加吸引力 ▼
void setup(){ size(500,500); for(int i=0; i<N; i++){ x[i]=random(500); y[i]=random(500); dx[i] = random(-1,+1); //dx = random(-1,+1); dy[i] = random(-1,+1); //dy = random(-1,+1); } } int N = 40; float[]x = new float[N];//float x=250, y=250; float[]y = new float[N]; float[]dx = new float[N];//float dx=1, dy=1; float[]dy = new float[N]; void draw(){ background(0); for(int i=0; i<N; i++){ ellipse(x[i],y[i], 5,5); 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]); dx[i] -= (x[k]-x[i])*0.00003; //增加吸引力 dy[i] -= (y[k]-y[i])*0.00003; //增加吸引力 } } 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_7_color
在工具中使用色彩選擇器 ▼
void setup(){ size(500,500); colorMode(HSB, 360, 100, 100); }//H:0-360', S:0-100%, B:0-100% void draw(){ background(frameCount%360, 22, 80); } // 從0開始每換一幀就換一個顏色
Week03_8_colorMode_HSB_stroke_point
用point( )畫豎的彩虹 ▼
設定飽和度和亮度的最小值▼
size(400,400); //noStroke(); colorMode(HSB, 400); //色相最大值400 for(int i=0; i<400; i++){ for(int j =0; j<400; j++){ stroke(i, 400, 400); //最濃 point(i,j); } }
week03_9_diff_color_random_colorMode
按下滑鼠就隨機決定不同顏色的位置▼
void setup(){ size(300,300); colorMode(HSB, 360, 100, 100); chooseColor(); } void mousePressed(){ chooseColor(); } int I, J; float h, s, b, dh, ds, db; void chooseColor(){ h = random(360); s = random(50,100); //飽和度50+ b = random(50,100); //亮度50+ I = int(random(5)); J = int(random(5)); dh = random(-10, +10); ds = random(-10, +10); db = random(-10, +10); } void draw(){ background(203, 63, 65); for(int i=0; i<5; i++){ for(int j =0; j<5; j++){ if(i==I && j==J)fill(h+dh, s+ds, b+db); else fill(h,s,b); ellipse(30+j*60, 30+i*60, 60, 60); } } }
沒有留言:
張貼留言