陶雪嬌+陶薇薇
摘 要:迭代函數系統(tǒng)(Iritated Function System,IFS)是一種利用迭代或遞歸方式,將滿足收斂性的數學對象進行反復計算并拼貼生成具有分形特征作品的方法。首先從二維IFS公式原理上研究了分形圖形的拼貼公式以及推導;然后將分形作品按照自相似特征進行解析,形成多個仿射變換拼貼;再從整體到局部縮放、旋轉、平移等變換的角度,分析仿射變換指數的變化規(guī)律,得出IFS碼;最后對分形圖形進行了仿真分析。
關鍵詞:迭代函數系統(tǒng);放射變換;分形圖
DOIDOI:10.11907/rjdk.171460
中圖分類號:TP312
文獻標識碼:A 文章編號文章編
號:1672-7800(2017)008-0053-03
0 引言
隨著數學與計算機學科發(fā)展,依托公式遞歸與迭代方式生成數字分形作品的藝術形式發(fā)展很快,分形藝術作品也在平面、視頻、影視、動畫、壓縮等領域得到了較好應用[1]。迭代函數系統(tǒng)(Ireration Function System,IFS)是基于函數迭代原理的仿射變換系統(tǒng),是生成數字分形圖形的重要方法之一,在分形圖形數字生長中最具發(fā)展前景。IFS系統(tǒng)可以選取迭代函數,生成IFS吸引集,通過仿射變換(Affine Transformation)實現(xiàn)二維坐標之間的線性變換,保持二維圖形的“平直性”[2]。
1 二維平面的仿射變換拼貼原理
任何分形圖形都具有整體與局部相似的特性,每一組相似可視為從整體到局部的一個仿射變換,多個仿射變換集進行拼貼就能形成復雜的分形圖像。二維平面的IFS公式[3]如下:
S=Un[]i=1Fi(S)Pi(1)
其中,S是二維平面的點集,仿射變換是一個二維點集到二維點集的映射,其中Fi即仿射變換的變換函數, N個仿射變換函數映射的并集拼貼形成一個具有自相似特性的分形圖形,Pi是該變換函數在仿射拼貼中的權重值。
Fi是一個仿射變換的映射公式,Vj本身可以是任意的迭代算法,如線性(linear)、旋渦(swirl)、球形(spherical)等變換,可以寫成如下形式:
Fi(x,y)=Vj(aix+biy+ei,cix+diy+fi)(2)
由式(2)可以看出,F(xiàn)i輸入了一個點(x,y),然后傳入Vj進行線性變換,其簡化形式可以用式(3)表達:x′=ax+by+ey′=cx+dy+f(3)
式(3)可轉化為矩陣表達式:
x′y′=a cb dx[]y+ef=Txy+ef(4)
從式(3)和式(4)可以看出,F(xiàn)i的仿射變換即是對(x,y)點進行縮放、旋轉、拉伸、平移等線性操作,(x,y)是仿射變換前的點坐標,(x′,y′)是仿射變換后的點坐標,a、b、c、d、e、f是仿射變換系數,當把式(3)變成式(4)時,系數是矩陣的形式,便于在Matlab中計算和實現(xiàn)。在繪制某個分形圖形時,應當先分析分形圖形的自相似性,確定仿射變換系數。
當繪制的分形圖形比較復雜時,需要多個仿射變換,即確定仿射變換集{ωn}。多個仿射變換的結果會拼貼在一起進行迭代,此即IFS的拼貼原理。每個仿射變換在拼貼時所占比重不一樣,也即仿射變換集會對應一個比重集P=[p1,p2,p3]。
2 仿射變換生成IFS碼
以經典的sierpinski三角為例,如圖1所示。墊片由3個基本的仿射變換組成,完整的墊片由這3個三角形進行各自仿射變換形成。由于這3個部分的形狀完全一樣,所占的比重也一樣,都是1/3,所以,P=[1/3,1/3,1/3]。
根據圖1可以分析出3個三角形相對于原始三角形的線性變換關系:原始三角形迭代后的形狀邊長是原邊長的一半,因此式(4)中的T可以確定為:
T=0.5 00 0.5(5)
3個三角形的起始坐標可以確定為(0,0),(1,0),(0.5,3/2),這3個坐標是迭代后3個三角形的坐標偏移量。很明顯在第二次迭代時,大三角形中間挖空了一個倒立的正三角形,可以將其解讀為3個同樣大小的三角形拼貼到一起,也即三角形①由原三角形邊長縮放到1/2且不平移,三角形②由原三角形縮放到1/2且平移坐標(1,0),三角形③由原三角形縮放到1/2且平移坐標(0.5,sin(pi/3))??s放對應到式(4)中x和y的系數,即a與d,而平移對應到式(4)的e和f。迭代出來的3個三角形大小一樣,意即3個仿射變換的比重一樣為1/3,因此得出墊片的IFS碼。3個三角形的權重相等,因此概率因子pi用1等分,即pi=1/3,得到3個線性變換的IFS碼,見表1。
每一次迭代都采用相同的系數獲取映射點集、迭代數次,得到分形圖。執(zhí)行上述程序輸出的圖形如圖1所示。從Matlab的輸出結果可以看出,這是一個具有典型的自相似性的三角形墊片,初始是一個黑色的三角形,每次切掉中間倒立的正三角形,如此迭代,可得到sierpinski墊片。在IFS迭代函數系統(tǒng)中,迭代次數越多效果越清晰。
用同樣的方式可得出koch曲線的IFS碼,如圖2所示。第1次迭代時,koch曲線是一條直線,而第2次迭代時,koch曲線變成了4段,每一段等長,可以看作4個仿射變換,每個仿射變換的權重相等,因此概率因子pi用1等分,即pi=1/4。很明顯,在第二次迭代時,可以將其解讀為4個同樣大小的線段拼貼到一起,也即是線段①由原線段邊長縮放到1/3且不平移,線段②由原線段縮放到1/3且逆向旋轉60°且平移坐標(1/3,0),線段③由原線段縮放到1/3且正向旋轉60°且平移坐標(0.5,1/sqrt(12)), 線段③由原線段縮放到1/3且平移坐標(2/3,0)??s放對應式(4)中各自的x、y系數,旋轉需要將坐標進行三角變換,而平移到式(4)的e和f,由此得出墊片的IFS碼,見表2。endprint
只要分析清楚對象的自相似特性,就可以建模具體的仿射變換進行拼貼,再根據公式(4)分析出各自的仿射變換IFS碼。
用同樣的方式可以得出分形樹的IFS碼,如圖3所示。第1次迭代時,分形樹是一條直線,而第2次迭代時,分形樹變成了5段,每一段等長,可以看做5個仿射變換,每個仿射變換權重相等,因此概率因子pi用1等分,即pi=1/5。很明顯在第二次迭代時,可以將其解讀為5個同樣大小的線段拼貼到一起,也即是線段①由原線段邊長縮放到1/3且不平移,線段②由原線段縮放到1/3且逆向旋轉30°且平移坐標(0,1/3),線段③由原線段縮放到1/3且平移坐標(0,1/3), 線段④由原線段縮放到1/3且正向旋轉30°且平移坐標(0,2/3),線段⑤由原線段縮放到1/3且平移坐標(0,2/3)??s放對應到式(4)中各自x和y的系數,旋轉需要將坐標進行三角變換,而平移對應到式(4)的e和f,得出墊片的IFS碼,見表3。
由以上例子可知,在進行縮放時,所有的系數abcd都需要乘以縮放系數。進行旋轉時,逆時針旋轉角度取正,順時針旋轉角度取負,坐標系數需要進行三角變換,即T系數變換:
T=cosθ -sinθsinθ cosθ(6)
3 IFS碼引入隨機參數
在構造森林時,考慮到森林中樹的隨機性,可以將隨機參數引入IFS碼。但不同的樹木分形特征差異較大,如楓葉與蕨類植物的葉子具有極大的差異性[4],可以構造不同的仿射變換來生成分形樹,如圖4第一棵樹與第二棵樹是兩個不同時令不同物種的分形樹。
同一種對象的仿射變換特征相似,可以引入隨機函數構造同一物種不同外觀的樹或樹葉。圖5是引入了隨機參數到IFS后生成的同一物種不同外觀的樹葉。
4 結語
自然界有許多具有自相似特性的分形結構,如雪花、分形厥、樹冠等,通過分析分形圖整體與局部的仿射變換特性,計算出仿射變換的旋轉、平移、縮放指數,構成IFS碼,就可以對分形實物進行仿真[5]。但這種分析方式對大自然中具有不規(guī)則變換特性的分形圖仿真效果較差,找到較為準確的IFS碼需要多次嘗試。下一步研究擬提出仿射變換建模算法,以提高IFS碼生成效率與仿真準確率。
參考文獻:
[1] 朱華,姬翠翠.分形理論及其應用[M].北京:科學出版社, 2011.
[2] 徐桂楠.數字藝術設計中的科學美 [J].科教文匯,2014(5):132-133.
[3] 陶薇薇.基于數學分形生成數字藝術作品的方法研究[J].藝術品評,2017(1):408-410.
[4] 朱海祥.基于 IFS 法的分形圖形生成及優(yōu)化設計[J].高師理科學刊,2016(36):29-30.
[5] 劉志勇.基于分形技術與Matlab的樹葉形態(tài)模擬仿真[J].重慶職業(yè)技術學院學報,2007 (16):141-142.endprint