2009年7月7日 星期二

Digital Sun

今天終於把事情忙完,心血來潮就把上次的Digital Chaos拿來修改,想說改成動態的形式。後來想到不錯的點子,讓圖的半徑交互遞增遞減,動態畫出一張類似太陽的圖形,姑且就稱它為Digital Sun吧。


這是截圖,所以沒有動畫。在Processing上執行會是圓心到圓周的文字交替增加,形成中心越來越密集的太陽。

後來又加上一個細微旋轉,使圖形變成颶風:



程式碼:
int lineSize = 400;
int wide = 5;
int hei = 8;
int fontSize = 16;
int shadow_shift = 2; //文字殘影偏移量
int amount = 50;
int radius = amount;
float angel = 0; // 一行的角度偏移量,設成0.3會變颶風。
PFont font;
boolean sw = true;
void setup(){
size(800,800);
font = createFont("Geogreia",fontSize);
textFont(font);
background(0);
}
void draw(){
if(radius == -amount)
sw = true;
if(radius == amount)
sw = false;
radius += sw? 2:-2;
translate(width/2,height/2);
for(int i = 1 ; i <= 10*abs(radius); i+=5){
int rand = (int)random(2);
int num = (int)random(2);
int shift = (int)random(8) * (i/lineSize >=1 ? -1:1);
int x = i%lineSize+i/100*wide + shift;
int y = (i/lineSize)*hei+ shift;
float trans = 160+95*(shift/7);
fill(255,trans);
rotate((rand == 0? -shift:shift));
rotate(angel);
text(String.valueOf(num), x , y);
if(shadow_shift != 0){
fill(255,trans*0.5);
text(String.valueOf(num), x+shadow_shift,y+shadow_shift);
}
textFont(font,fontSize+(rand == 0 ? -shift:shift));
}
translate(width/-2,height/-2);
}
後來仔細想想,也許它該叫「眾妙之門」。

「無,為天地之始;有,為萬物之母。故常無,欲以觀其妙;常有,欲以觀其徼。此兩者,同出而異名,同謂之玄,玄之又玄,眾妙之門。」-《道德經》

沒有留言:

張貼留言