于紅志
(大連大學(xué)信息工程學(xué)院,大連 116622)
迭代函數(shù)系統(tǒng)圖像的繪制研究
于紅志
(大連大學(xué)信息工程學(xué)院,大連116622)
迭代函數(shù)系統(tǒng)是繪制分形圖的最基本的方法之一,運用隨機迭代算法實現(xiàn)IFS分形樹的繪制。并運用Visual Basic的自定義坐標(biāo)系統(tǒng),對IFS分形樹圖像的成像進行了設(shè)計研究,實現(xiàn)IFS分形樹圖像按設(shè)計的大小、方位輸出圖像。
迭代函數(shù)系統(tǒng);IFS分形樹;自定義坐標(biāo)
迭代函數(shù)系統(tǒng)(IterationFunctionSysterm,簡稱IFS),是分形幾何學(xué)的重要分支,也是繪制分形圖最基本的方法之一。IFS在對自然景物的計算機模擬生成中具有明顯的優(yōu)勢,運用分形迭代函數(shù)系統(tǒng)既可以模擬已有的物種也可以創(chuàng)造新的任意物種形態(tài)。借助計算機只需調(diào)整相關(guān)算法中的系數(shù)及參數(shù)就可以模擬生成各種不同的生物形態(tài)。而正是由于IFS可以用少量的數(shù)據(jù)描述比較復(fù)雜的圖像,因而也具有很強的圖形數(shù)據(jù)壓縮能力。下面僅就IFS圖像生成以及生成圖像的設(shè)計進行探討與研究。
1.1IFS繪圖算法
運用迭代函數(shù)系統(tǒng)生成植物的算法思想是,要確定一組迭代規(guī)則,它們是由一組仿射變換(如R1,R2,R3等)構(gòu)成的,每一次迭代使用哪個仿射變換是不確定的,要有使用概率(pi)來控制。設(shè)最終要生成的圖形(植物形態(tài)圖)為M,它要滿足下述集合方程:
(1)式的含義是,隨機的從Ri(i=1,…,N)中挑選一個迭代規(guī)則迭代一次,然后再隨機的在Ri(i=1,…,N)中選一個規(guī)則迭代一次,不斷重復(fù)這個過程,最后生成的收斂點集M就是所要獲取的植物圖像,每個迭代規(guī)則Ri都是一個壓縮的仿射變換。在此必須選用壓縮的仿射變換,因為只有每個仿射變換都具有收縮性,才能使迭代收斂到M內(nèi),M應(yīng)當(dāng)是所有迭代Ri的吸引子。于是,由概率控制的IFS迭代算法如下:
設(shè)帶有概率的IFS由壓縮仿射變換集R={Ri:Ri1,Ri2,…,RiN,i=1,2,…,M}與概率集P={pi1,pi2,…,piN,i= 1,2,…,M}構(gòu)成。其中:
對于任意i,Rij中的max(j)可以小于N,即把j為max(j)+1至N的所有參數(shù)視為0。
選取任一點xi0∈R(i=1,2,…,M)為初始點,然后遞歸地隨機選取下述集合中的一個點作為xin,n=1,2,…,于是有:
最后得到的序列{xin}?Ri,收斂到IFS的吸引集中。
上述隨機迭代算法中的概率集P,通常是被賦予一個很小的正數(shù)。另外還要確定仿射變換的個數(shù)及最大的迭代次數(shù)。
1.2繪制IFS分形樹
根據(jù)表1給出的仿射變換參數(shù)及概率集,用Visual Basic編碼生成了IFS分形樹圖像(其仿射迭代次數(shù)是10000次),如圖1所示。
表1 IFS分形樹仿射變換系數(shù)與參數(shù)
圖1 IFS 分形樹
圖2 IFS分形樹之大中小
2.1VB的自定義坐標(biāo)系統(tǒng)
繪制IFS圖像時,首先要在繪圖窗口建立自定義坐標(biāo)系。VB的坐標(biāo)系統(tǒng)由Scale的4個屬性來確定,它們分別是:ScaleLeft、ScaleTop、ScaleWidth和Scale Height。其中ScaleLeft的取值確定繪圖窗口左邊的水平坐標(biāo),ScaleTop的取值確定繪圖窗口頂端的垂直坐標(biāo);ScaleWidth的取值確定繪圖窗口內(nèi)部的水平寬度,ScaleHeight的取值確定繪圖窗口內(nèi)部的垂直高度。因此,ScaleLeft、ScaleTop的取值改變將重新定義坐標(biāo)原點,也就是將改變圖像的輸出位置。ScaleWidth的取值決定水平方向成像的大小;ScaleHeight的取值決定垂直方向成像的大小。這就意味著上述4個屬性中任意一個屬性值的改變都將使最終圖像的成像發(fā)生改變。
2.2設(shè)計繪制圖像的大小和方位
(1)設(shè)計將IFS分形樹進行縮小處理
根據(jù)以上的分析現(xiàn)將圖1的IFS分形樹進行縮小的設(shè)計輸出:改變其中的ScaleWidth和ScaleHeight的取值。由于水平方向坐標(biāo)軸和垂直方向坐標(biāo)軸的單位值分別是ScaleWidth和ScaleHeight的倒數(shù),故將圖1的ScaleWidth和ScaleHeight取值的絕對值在原基礎(chǔ)上分別擴大1.5倍和2倍,即繪制了圖2所示兩個的縮小的IFS分形樹。反之,若要設(shè)計放大圖像,則應(yīng)將ScaleWidth和ScaleHeight取值的絕對值縮小相應(yīng)的倍數(shù)。
(2)設(shè)計繪制成行和成列的IFS分形樹
根據(jù)1.1中的分析,設(shè)使用Scale方法建立第一棵分形樹的自定義坐標(biāo)系為:
若設(shè)計沿水平方向繪制下一棵樹時,在接下來的自定義坐標(biāo)系中只需將x1和x2分別增加一個平移量X,即令x1=x1+X,x2=x2+X,沿著x軸的正向繪制時,X取負值;反之,X取正值。設(shè)計編程時,將IFS分形樹的繪制過程定義為一個Sub子過程,在主調(diào)過程中按上述方法建立動態(tài)的自定義坐標(biāo)系調(diào)用Sub子過程即可繪制如圖3所示的分形樹成行的圖像。同理,在公式(1)的自定義坐標(biāo)系中,將y1和y2分別增加一個平移量Y,即令y1=y1+Y,y2=y2+Y,沿y軸的正向繪制時,Y取負值;反之,Y取正值,如此建立動態(tài)的自定義坐標(biāo)系繪制出圖4所示的分形樹排成列的圖像。
圖3 IFS分形樹行
圖4 IFS分形樹列
(3)設(shè)計沿斜上對角線和斜下對角線輸出IFS分形樹圖像
這時需要在主調(diào)過程中建立的動態(tài)的自定義坐標(biāo)系,即公式(1)中的x1、x2、y1、y2同時用x1=x1+X,x2=x2+X,y1=y1+Y,y2=y2+Y進行替換更新,其它處理同上。圖5和圖6即為沿斜上對角線和斜下對角線輸出的IFS分形樹圖像。
(4)設(shè)計繪制樹成林的IFS圖像
圖5 IFS分形樹行
圖6 IFS分形樹列
圖7 IFS分形樹林
圖8 IFS分形樹林(彩色)
在主調(diào)過程中建立(3)中的動態(tài)自定義坐標(biāo)系,結(jié)合一個雙重循環(huán)語句,調(diào)用繪制IFS分形樹的Sub子過程,即可繪制IFS分形樹成林的圖像,見圖7和圖8(圖8在用Pset方法畫點的同時賦予了不同的顏色)。
運用VB的坐標(biāo)系統(tǒng),建立了動態(tài)的自定義坐標(biāo)系,對IFS分形樹的圖像進行了設(shè)計輸出,實現(xiàn)了IFS分形樹的縮小繪制、成行繪制、成列繪制、成對角線繪制以及成面繪制。這種處理方法的研究和運用豐富了IFS圖像的表現(xiàn)形式,也為其他類圖形圖像的處理提供了方法借鑒。
[1]齊東旭.分形及其計算機生成,科學(xué)出版社,1994,11.
[2]潘金貴.分形藝術(shù)程序設(shè)計,南京大學(xué)出版社,1998,3.
[3]羅朝盛.Visual Basic 6.0程序設(shè)計教程,人民郵電出版社,2013,2.
Research on Drawing Images of Iteration Function System
YU Hong-zhi
College Information Engineering,Dalian University,Dalian 116622)
IFS is one of the ways to draw fractal images,draws IFS fractal trees by stochastic iterative algorithm.According to the design and uses custom coordinate system by Visual Basic to achieve the IFS fractal trees image size,and controls the orientation of the output.
Iteration Function System;IFS Fractal Tree;Custom Coordinate
1007-1423(2016)26-0074-03DOI:10.3969/j.issn.1007-1423.2016.26.018
于紅志,女,大連市人,教師,碩士,研究方向為軟件開發(fā)與應(yīng)用、分形繪圖
2016-07-05
2016-08-20