二、復(fù)平面中的神奇迭代
Mandelbrot集合是Mandelbrot在復(fù)平面中對簡單的式子 Z <- Z^2 + C 進(jìn)行迭代產(chǎn)生的圖形。雖然式子和迭代運(yùn)算都很簡單,但是產(chǎn)生的圖形出現(xiàn)那么豐富多樣的形態(tài)及精細(xì)結(jié)構(gòu)簡直令人難以置信以至于不可思議。在傳統(tǒng)幾何學(xué)中難以找到如此簡單的規(guī)律隱藏著如此復(fù)雜而生動的例子。Mandelbrot集合告訴我們自然界中簡單的行為可以導(dǎo)致復(fù)雜的結(jié)果。例如,大型團(tuán)體操中每個人穿的衣服只有幾種顏色中的一種,每個人的動作也只是導(dǎo)演規(guī)定的幾種之一。但是整體上可以顯示出多種多樣的復(fù)雜形態(tài)。
Julia 集合
在復(fù)平面上,水平的軸線代表實數(shù),垂直的軸線代表虛數(shù)。每個Julia集合(有無限多個點(diǎn))都決定一個常數(shù)C,它是一個復(fù)數(shù),F(xiàn)在您在復(fù)平面上任意取一個點(diǎn),其值是復(fù)數(shù)Z。將其代入下面方程中進(jìn)行反復(fù)迭代運(yùn)算:
就是說,用舊的Z自乘再加上C后的結(jié)果作為新的Z。再把新的Z作為舊的Z,重復(fù)運(yùn)算。 當(dāng)你不停地做,你將最后得到的Z值有3種可能性:
1、Z值沒有界限增加(趨向無窮) 2、Z值衰減(趨向于零) 3、Z值是變化的,即非1或非2
趨向無窮和趨向于零的點(diǎn)叫定常吸引子,很多點(diǎn)在定常吸引子處結(jié)束,被定常吸引子所吸引。非趨向無窮和趨向于零的點(diǎn)是"Julia集合"部分,也叫混沌吸引子。
問題是我們怎樣才能讓計算機(jī)知道哪一個點(diǎn)是定常吸引子還是"Julia集合"。一般按下述算法近似計算:
n=0; while ((n++ < Nmax) && (( Real(Z)^2 + Imag(Z)^2) < Rmax)) { Z=Z*Z+C; }
其中:Nmax為最大迭代次數(shù) Rmax為逃離界限
退出while循環(huán)有兩種情況,第一種情況是:
(Real(Z)^2 + Imag(Z)^2) >= Rmax
屬于這種情況的點(diǎn)相當(dāng)于"1、Z值沒有界限增加(趨向無窮)",為定常吸引子,我們把這些區(qū)域著成白色。第二種情況是:
n >= Nmax
屬于這種情況的點(diǎn)相當(dāng)于"2、Z 值衰減(趨向于零)"或"3、Z 值是變化的",我們把這些區(qū)域著成黑色。黑色區(qū)域圖形的邊界處即為"Julia集合"。"Julia集合"有著極其復(fù)雜的形態(tài)和精細(xì)的結(jié)構(gòu)。
黑白兩色的圖形藝術(shù)感染力不強(qiáng)。要想得到彩色圖形,最簡單的方法是用迭代返回值n來著顏色。要想獲得較好的藝術(shù)效果,一般對n做如下處理:
Red = n*Ar+Br; Grn = n*Ag+Bg; Blu = n*Ab+Bb; if ((Red & 0x1FF) > 0xFF) Red = Red ^ 0xFF; if ((Grn & 0x1FF) > 0xFF) Grn = Grn ^ 0xFF; if ((Blu & 0x1FF) > 0xFF) Blu = Blu ^ 0xFF; 其中:Ar、Ag、Ab及Br、Bg、Bb為修正量
獲得的Red、Grn、Blu為RGB三基色,著色效果為周期變化,具有較強(qiáng)的藝術(shù)感染力,而且等位線也蘊(yùn)藏在周期變化的色彩之中。
你可以想象得出,在屏幕上順序的試用每個像素點(diǎn)來反復(fù)迭代方程要花費(fèi)很長的時間。一幅 1024x768 屏幕尺寸的畫面有786432個點(diǎn)。其中一些點(diǎn)在計算機(jī)上要反復(fù)迭代方程次數(shù)達(dá)1000次(取決于Nmax的取值)或更多次才放棄運(yùn)算。 運(yùn)算產(chǎn)生一幅Julia集合需要花費(fèi)很長的時間,有時需要產(chǎn)生一幅做海報用的大圖像時,如 10240x7680,要花幾天的時間。當(dāng)然,你使用高速計算機(jī)會縮短這個時間。圖 4、5、6是三幅Julia集合:
圖 4 象塵埃一樣的結(jié)構(gòu) 圖 5 穩(wěn)定的固態(tài)型 圖 6 象樹枝狀
出處:分形藝術(shù)
責(zé)任編輯:moby
上一頁 分形藝術(shù)基本知識及作品欣賞 [1] 下一頁 分形藝術(shù)基本知識及作品欣賞 [3]
◎進(jìn)入論壇Photoshop、Fireworks版塊參加討論
|