1-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; }
1-2
新增亂數,讓點能夠隨機移動,再增加限制,讓點碰到邊界可以彈回來
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; }
1-3
把原本只設一個點,改成矩陣數量更多,利用迴圈使每一點的原點位置都是隨機
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]; } }
1-4
新增線條,新增迴圈
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); 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]; } }
2-1
增加點的數量,更改顏色
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);//亂數 dy[i]=random(-1,+1);//亂數 } } int N=40; float []x=new float[N]; float []y=new float[N]; float []dx=new float[N]; 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]; } }
2-2
增加吸引力
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);//亂數 dy[i]=random(-1,+1);//亂數 } } int N=40; float []x=new float[N]; float []y=new float[N]; float []dx=new float[N]; 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; dx[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]; } }
3-1
void setup(){ size(500,500); } void draw(){ background(#FC2119); }
3-1-2
增加色彩模式,增加飽和度、亮度,frameCount 可以將同色溫的顏色輪流展現
void setup(){ size(500,500); colorMode(HSB,360,100,100); } void draw(){ background(frameCount%360,83,95); }
3-2
設顏色的最大值,做一個彩虹的背景
size(400,400); noStroke(); colorMode(HSB,400); for(int i=0;i<400;i++){ for(int j=0;j<400;j++){ stroke(i,400,400); point(i,j); } }
3-3
chooseColor讓顏色隨機變化
void setup(){ size(300,300); colorMode(HSB,360,100,100); choseColor(); } float h,s,b; void choseColor(){ h=random(360); s=random(100); b=random(100); } void draw(){ background(203,63,65); for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ fill(h,s,b); ellipse(30+j*60,30+i*60,60,60); } } }
3-3-2
增加用滑鼠點擊,會變更色彩
void setup(){ size(300,300); colorMode(HSB,360,100,100); choseColor(); } void mousePressed(){ choseColor(); } float h,s,b; void choseColor(){ h=random(360); s=random(100); b=random(100); } void draw(){ background(203,63,65); for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ fill(h,s,b); ellipse(30+j*60,30+i*60,60,60); } } }
3-3-3
void setup(){ size(300,300); colorMode(HSB,360,100,100); choseColor(); } void mousePressed(){ choseColor(); } int I,J; float h,s,b,dh,ds,db; void choseColor(){ h=random(360); s=random(50,100); b=random(50,100); 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); } } }
沒有留言:
張貼留言