包 曄
(浙江水利水電??茖W校,浙江 杭州 310018)
傳統幾何學研究對象主要是規則幾何體的形狀,而新興的分形幾何學研究對象是非規則的幾何形體,即分數維物體或圖形.事實上,自然界中許多景物,包括樹、花、草等植物以及地形、山脈、云彩等都是分數維的,所以研究植物、地形等的計算機圖形顯示方法具有重要的現實意義.目前國內外對此都已有研究[1-2].
但是,在經典的二維蕨類植物模擬方面對形狀控制方法目前還缺乏研究,本文將重點對二維蕨類植物生成的形狀及彎曲方向控制方法進行研究,其主要思想是通過對仿射變換矩陣系數進行調節分析.
仿射變換是計算機圖形學中幾何變換的重要研究內容,也是函數迭代系統(IFS)中經常用到的重要概念.仿射變換包括對圖形做繞原點的旋轉、放縮、平移以及更一般的變換等.
定義1 二維歐氏空間中的仿射變換為ω:R2→ R2,X= [x,y]T是此二維空間中的一點,則定義其仿射變換映射像為 X'= [x',y]T,即:
其中:參數 a,b,c,d,e,f均為實系數,它們完全確定一個仿射變換.可以將其分解為平移、旋轉和放縮等,用下式表示:
其中,e和f—x和y方向上的平移分量;
θ和φ—分別是繞x、y軸的轉角;
r和q分別是x和y方向上的放縮比例因子.
設{X;ω1,ω2,ω3,…,ωN}是一個(雙曲)IFS,其中每一個ωi具有一個概率pi>0,且p1+p2+…+pN=1.選取任一點X0∈X為初始點,然后遞歸地隨機選取下述集合中的一個點作為xn,n=1,2,…,于是有:xn∈ {ω1(xn-1),ω2(xn-1),ω3(xn-1),…,ωN(xn-1)}.
最終得到序列{xn}?X,收斂于IFS的吸引子.
若取仿射變換序列中各仿射變換的系數及該仿射變換被選取的概率見表1.
表1 仿射變換系統選取概率表
其中,迭代次數itn為50000次,仿射變換的個數為 4 個,sx,sy為 x,y 方向的比例系數,r=a,q=b,θ =c,φ =d,e,f即為仿射變換矩陣的相應的值,p為各仿射變換被選取的幾率.sx=30,sy=30,count=15.運行后得圖1.
若仿射變換的旋轉變量c,d相應的值都取反,即見表2.
表2 仿射變換旋轉變量選取概率表
則運行后可得圖2.可見,蕨類植物的生成方向可由旋轉變量θ,φ來控制.
圖1 表1仿射變換效果圖 圖2 旋轉后效果圖圖
可以對a,b,c,d這四個系數逐一分析研究,即保持其他的三個量不變,而讓其中的一個系數變化.因為第二個仿射變換出現的幾率大,所以在對各仿射變換系數的分析中,只對第二個仿射變換的數據進行變化.
將數據 a 分別取為:0.851 -0.08,0.851 -0.06,0.851 - 0.04,0.851 - 0.02,0.851,0.851+0.02,0.851+0.04,可得圖3.
由圖3可知:
x軸上的比例放縮量r
(1)決定蕨類植物葉片繞x軸的旋轉(或伸展)幅度,也決定葉片的彎曲程度.
(2)決定各子葉片的間隙的大小.
(3)決定各子葉片的大小.
圖3 系數r對蕨類形狀控制效果圖
將 b 分別取為:0.851 - 0.04,0.851 - 0.02,0.851,0.851+0.02,0.851+0.04,可得圖 4.
圖4 系數q對蕨類形狀控制效果圖
由圖4可知:
(1)y軸上的比例放縮量q決定蕨類植物葉片在x軸、y軸方向(即屏幕的上下、左右)的伸展幅度,也即決定葉片在x軸、y軸上的放縮.
(2)當q太小時,蕨類植物的葉片會出現脫節現象.
(3)y軸上的比例放縮量q在一定程度上決定葉片的彎曲程度.
將 c分別取為:0.0 -0.08,0.0 -0.04,0.0,0.0+0.04,0.0+0.08;可得圖 5.
由圖可知:
(1)θ決定蕨類植物葉片隨著從葉根部到葉尖,葉片繞葉莖的扭轉程度.即越到葉尖,葉片繞葉莖扭轉得越厲害.
(2)θ決定蕨類植物葉片隨著從葉根部到葉尖,葉片往哪里偏,即決定莖左右葉子向葉莖的靠攏程度.
(3)θ決定蕨類植物葉片的彎曲程度.
(4)θ決定蕨類植物葉片左右子葉片的尖細(或寬窄)程度.
圖5 系數θ對蕨類形狀控制效果圖
將 d 分別取為:0.0 -0.02,0.0,0.0+0.02,0.0+0.04,0.0+0.06,0.0+0.08;可得圖6.
由圖可知:
(1)φ決定蕨類植物的葉片莖的生成方向,即蕨類植物葉片的方向.
(2)φ決定蕨類植物的葉莖與生長在其上的葉片的莖的角度的大小.
(3)φ決定蕨類植物的葉片的彎曲程度.
圖6 系數φ對蕨類形狀控制效果圖
本文給出了通過調節仿射變換系數來控制二維蕨類植物生成的形狀和彎曲方向的方法,能較好地控制蕨類植物葉片的生成形狀.但目前的方法還不能做到精確控制,即不能夠控制葉片生成的精確角度和葉片的精確大小,這個問題還有待于進一步研究.
[1]金以文.分形幾何原理及其應用[M].杭州:浙江大學出版社,1998.
[2]倪明田,吳良之.計算機圖形學[M].北京:北京大學出版社,1999.
[3]向世明.OpenGL編程與實例[M].北京:北京電子工業出版社,1999.
[4]林 勇,宋 征.VisualC++6.0應用指南[M].北京:人民郵電出版社,1999.