摘 要:論文首先闡述了帶參IFS理論,然后分析了自然界中在風(fēng)中樹(shù)的搖曳形態(tài),根據(jù)IFS理論定義了3D分形樹(shù)的一般形式,然后確定仿射矩陣和參數(shù),最后給出了一個(gè)四叉樹(shù)的IFS碼,并繪制了此3D分形樹(shù)在風(fēng)中搖曳形態(tài)。
關(guān)鍵詞:分形樹(shù) IFS 搖曳
中圖分類號(hào):TP391\t\t文獻(xiàn)標(biāo)識(shí)碼:A\t\t\t文章編號(hào):1672-3791(2011)10(a)-0005-01
分形理論能很好地描述一大類復(fù)雜無(wú)規(guī)則的幾何對(duì)象,如蜿蜒曲折的海岸線,繁茂的樹(shù)木植物,起伏不定的山脈等,因此在自然景物的仿真繪制中得到了廣泛應(yīng)用。樹(shù)木一直是虛擬現(xiàn)實(shí),GIS等領(lǐng)域的重要描述對(duì)象,而分形為人們表達(dá)樹(shù)木實(shí)體提供了很好的方法,因此近年來(lái)對(duì)分形樹(shù)的研究也逐漸成熟[1]。通常對(duì)分形樹(shù)的描述有遞歸算法、IFS算法和LS算法,其中由Bamsley提出的分形疊代系統(tǒng)IFS具有較大的影響力,在植物與樹(shù)木的計(jì)算機(jī)生成方面顯示出明顯的優(yōu)勢(shì)。近年來(lái)研究人員對(duì)IFS算法生成2D、3D樹(shù)進(jìn)行了大量深入的研究,并對(duì)構(gòu)造分形3D樹(shù)的IFS碼的獲取提出了切實(shí)可行的方法,本文對(duì)原有的IFS算法提出了改進(jìn),利用改進(jìn)的算法實(shí)現(xiàn)了3D樹(shù)的構(gòu)建,并實(shí)現(xiàn)了3D樹(shù)受不同方向不同風(fēng)力影響而搖曳的各種形態(tài)。
1 帶參IFS理論
1.1 疊代函數(shù)系統(tǒng)IFS
一個(gè)疊代函數(shù)系統(tǒng)由一個(gè)完備的度量空間(X,d)和一個(gè)有限的壓縮映射集及其相應(yīng)得壓縮因子,n=1,2,…N所組成,因此IFS可表示為{X;,n=1,2,…,N},其壓縮因子便是S=MAX{;n=1,2,…N}。
1.2 帶凝聚的IFS
設(shè){}為具有壓縮因子的IFS,如果定義變換為:,,,則稱為凝聚變換,C為凝聚集,則{}稱為帶凝聚的IFS[2]。
1.3 帶參量的IFS
設(shè)(X,d)是度量空間,{}是一個(gè)帶凝聚的IFS,令:是以為壓縮因子的壓縮映射族,亦即對(duì)每個(gè)固定的是X上的一個(gè)壓縮映射,對(duì)每一個(gè)固定的W在P上是連續(xù)的,則W的不動(dòng)點(diǎn)連續(xù)地依賴于p,相應(yīng)地,我們稱此時(shí)的IFS為帶參量的IFS。
2 搖曳的3D分形樹(shù)的實(shí)現(xiàn)算法
2.1 大自然中風(fēng)中樹(shù)的特點(diǎn)
風(fēng)向:較常見(jiàn)的風(fēng)向一般是和地面近似平行的,即風(fēng)向的方向向量可定義為{nx,0,nz}。
搖曳樹(shù)的特點(diǎn):樹(shù)搖曳時(shí),一般是和風(fēng)向垂直的分支搖擺幅度大,而且幅度由外到內(nèi)逐漸減小;樹(shù)頂搖曳幅度大,由上到下幅度逐漸減小。樹(shù)枝搖曳的方向?yàn)轱L(fēng)向。
2.2 帶依賴參數(shù)的變換矩陣的確定
根據(jù)樹(shù)枝搖曳的特點(diǎn),風(fēng)從(nx,0,nz)方向吹過(guò)來(lái),整個(gè)樹(shù)身近似于繞直線旋轉(zhuǎn),同時(shí)兩邊的樹(shù)枝的搖擺可看作近似于繞Y軸小幅度旋轉(zhuǎn)。這里為保持更加真實(shí)性,要求:(1)旋轉(zhuǎn)幅度不要過(guò)大;(2)樹(shù)頂影響最大,往下影響逐漸減小,我們可采用不同階段的風(fēng)力因子來(lái)控制。
根據(jù)IFS思想,3D樹(shù)的主枝到分枝的生長(zhǎng),可近似認(rèn)為由主干繞過(guò)樹(shù)根(原點(diǎn))的向量為(x,0,y)直線作旋轉(zhuǎn)變換,再進(jìn)行壓縮、平移變換而成。其中仿射變換的形式可簡(jiǎn)寫(xiě)為,其中為壓縮因子,為仿射變換矩陣,為平移量。基于IFS思想,我們可定義一顆3D分形樹(shù)為:,在這里,r的三個(gè)分量分別代表x軸,y軸,z軸方向的偏移量,、和分別是主枝依次繞x軸,y軸,z軸的旋轉(zhuǎn)角度。設(shè)3D樹(shù)的變換矩陣分別為:分枝偏移量矩陣,繞x軸角度矩陣,繞y軸角度矩陣,繞z軸角度矩陣。求的逆變換分別為,,,根據(jù)分形樹(shù)定義有。 、角和依據(jù)我們的需要而定(即希望分枝的形態(tài)),此時(shí)的為無(wú)風(fēng)時(shí)的變換矩陣,為了加入樹(shù)頂向風(fēng)向搖曳特征,我們?cè)O(shè)風(fēng)向?yàn)椋L(fēng)力為,則加入?yún)?shù)后的為: 當(dāng)然,還要加入和風(fēng)向近似垂直的兩側(cè)樹(shù)枝向風(fēng)向方向擺動(dòng),兩側(cè)樹(shù)枝和風(fēng)向越接近垂直擺動(dòng)幅度越大,此時(shí)可看作樹(shù)枝繞Y軸旋轉(zhuǎn),而且兩側(cè)樹(shù)枝旋轉(zhuǎn)方向相反。設(shè)樹(shù)枝當(dāng)前向量為,風(fēng)向?yàn)椋瑒t同風(fēng)向向量L垂直的向量為,計(jì)算向量與樹(shù)枝向量的夾角余弦:,的范圍為:,當(dāng)為時(shí),即樹(shù)枝與風(fēng)向相同時(shí)影響最小,當(dāng)為0或時(shí)影響最大。
2.3 IFSP碼的確定
通常獲取二維IFS碼所依據(jù)的是Barnsley的拼貼定理,即:設(shè)是一組IFS碼,壓縮比為C,e是任意小的正數(shù),T為上給定的邊界閉合的子集,假設(shè)已選定,使得,那么。這里,B為該IFS的吸引子;h為Hausdorff距離,同樣將此定理的應(yīng)用擴(kuò)展到三維空間,依此來(lái)判斷由一個(gè)3D-IFS經(jīng)連續(xù)變換所產(chǎn)生的吸引子與給定的初始集的相似程度,三維空間上的仿射變換的形式可簡(jiǎn)寫(xiě)為。所以確定一組IFS碼,就是確定這組壓縮映射中每一個(gè)的變換系數(shù)和。在帶參IFS中,我們最終也是要確定仿射變換的變換系數(shù),由于我們加入的參數(shù)可表示的變換系數(shù),所以我們用參數(shù)代替的系數(shù)作IFS碼。由本文前面所論述,我們可確定IFS碼包括:分枝繞X軸的旋轉(zhuǎn)角度,繞Y軸的旋轉(zhuǎn)角度,繞Z軸的旋轉(zhuǎn)角度,X方向上的壓縮因子,Y方向上的壓縮因子,Z方向上的壓縮因子,風(fēng)力影響因子,仿射變換的概率,X方向上的偏移量,Y方向上的偏移量,Z方向上的偏移量。
3 圖形繪制實(shí)例
根據(jù)上述思想,制作一個(gè)四叉樹(shù),初始化樹(shù)干的方向?yàn)?0,1,0)。要注意的是以上一項(xiàng)為風(fēng)力風(fēng)力影響因子,它控制樹(shù)的每個(gè)部位受風(fēng)力的影響力,從數(shù)值可以看出,樹(shù)的上部的值為0.6,即受風(fēng)力影響最大,旁枝分別為0.45,0.45,0.35,0.25,樹(shù)干下部受風(fēng)力影響最小為0.1。
4 結(jié)果分析
從實(shí)驗(yàn)結(jié)果可以看出:(1)通過(guò)修改樹(shù)枝旋轉(zhuǎn)的角度可以有目的的改變樹(shù)的形態(tài)。(2)通過(guò)改變風(fēng)向和風(fēng)力可以控制樹(shù)的搖曳形態(tài)。由此,本文利用分形算法模擬了一個(gè)樹(shù)的多種形態(tài)。
參考文獻(xiàn)
[1]\t趙欣,林和平.三維分形樹(shù)木模型在3D GIS中的應(yīng)用[J].吉林大學(xué)學(xué)報(bào),2003,21(3):307~311.
[2]\t李水根,吳紀(jì)桃.分形與小波[M].北京:科學(xué)出版社,2002.
[3]\t孫家廣,等.計(jì)算機(jī)圖形學(xué)[M].北京:清華大學(xué)出版社,1998.