
這是網路上搜尋到的圖片,大多數都是來自於Flickr
上PROCESSING的社群成員的作品,我選擇了幾個
我很喜歡的樣式,他們大多擁有像粒子發散或隨機
排列組合的特點,帶著統一的基本型又採用不規則
的排列方式,看起來相當迷人。
float radius = 10;
int segment = 10;
float centerX;
float centerY;
void setup(){
size(600,600);
}
void draw(){
centerX = mouseX;
centerY = mouseY;
spiral(centerX,centerY,radius,segment);
}
void spiral(float x_c,float y_c, float r, int seg){
for(int i =0;i<=seg;i++){
float x = x_c+cos(i*2*PI/seg)*r; //算出x的位置
float y = y_c+sin(i*2*PI/seg)*r; //算出y的位置
point(x,y); // 畫出點,也能用其他形狀
}
}


void setup(){
size(1024,768);
int w = 1;
int counter = 0;
float a = 40;
for(float j =0;j<height;j+=40){
for(float i =0;i<width;i+=0.1){
ellipse(i*j/10,f(a,w,i,j/40)+j*1.3,j/10,4);
}
}
}
float f(float a, float w,float t,float x){
return a*sin(x-w*t);
}
這圖是先做平面方格,由左向右慢慢放大的效果。後來再加上在每個平面方格上,繪製漸漸變小的數個平面方格。平面方格越大,上面的小方格就越多,就會造成這種漸層效果。剛剛將偏移函數從cos改成tan,圖形變得很有趣。
void setup(){
size(1000,600);
background(0xffffff);
noStroke();
noLoop();
}
void draw(){
for(int i =1; i<=width; i+=20){
for(int j =1;j<=height;j+=20){ //繪製方格間隔為20px的方格
for(int k =0;k<=i/20;k+=3){ //在每個位置上,多繪製漸層效果的小方格
fill(200-(i%256-k*5),200-(j%256-k*5),200-(i*j%256-k*5),120);
float x = -abs(tan((float)Math.toRadians(j))); //i, j決定漸層偏移角度
float y = -abs(tan((float)Math.toRadians(i)));
rect(i+k*x,j+k*y,i/20-k,i/20-k); //以k做出由大到小的感覺
}
}
}
}