使用MATLAB實現(xiàn)隨機分形樹模擬_第1頁
使用MATLAB實現(xiàn)隨機分形樹模擬_第2頁
使用MATLAB實現(xiàn)隨機分形樹模擬_第3頁
使用MATLAB實現(xiàn)隨機分形樹模擬_第4頁
使用MATLAB實現(xiàn)隨機分形樹模擬_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、使用MATLAB實現(xiàn)隨機分形樹模擬尤鴻霞(南通紡織職業(yè)技術(shù)學(xué)院,南通,)摘要:闡述了植物模擬的典型方法L-系統(tǒng)及迭代函數(shù)系統(tǒng)(IFS)的基本原理。根據(jù)這兩種方法,利用Matlab軟件工具,模擬了帶有隨機因子的分形樹,模擬的分形樹形態(tài)生動逼真。Matlab具有強大的繪圖工具和函數(shù)系統(tǒng),實現(xiàn)隨即分形樹模擬的程序很簡潔。關(guān)鍵字:分形樹; L-系統(tǒng); 迭代函數(shù)系統(tǒng) IFS; matlab中圖分類號:TP391.9 文獻標(biāo)識碼:A1 介紹自然界中種類繁多的植物大都具有自我相似的分形特征。近年來,隨著分形理論的發(fā)展,分形理論在植物模擬領(lǐng)域得到了廣泛的應(yīng)用?;诜中卫碚摰闹参锬M方法主要有L-系統(tǒng)、迭代函數(shù)

2、系統(tǒng)、粒子系統(tǒng)等1。本文以L系統(tǒng)、迭代函數(shù)系統(tǒng)(IFS)的算法思想為基礎(chǔ),以Matlab為編程工具,借助Matlab的繪圖功能,實現(xiàn)了隨機分形樹的模擬。2分形模擬的實現(xiàn)2.1 基于L系統(tǒng)的仿真1968年,著名理論生物學(xué)家Lindenmayer,在研究植物形態(tài)的進化和構(gòu)造時,提出了一種文法描述方法作為植物生長的數(shù)學(xué)理論,即L系統(tǒng),它能很好地表達植物的分枝特征。之后,各地的研究人員開始關(guān)注L-系統(tǒng),并對其做了各種改進。至今,L-系統(tǒng)仍然是植物模擬的一種重要思想方法。L-系統(tǒng)是一種符號重寫系統(tǒng),基本思想為字符串替換,其替換規(guī)則基本如下:ba,aab。則其基本演變規(guī)律為:baababaabaababa

3、ababaabaababaabaab。字符串的增長符合fibonacci數(shù)列,即F(n+2)=F(n+1)+F(n)。L-系統(tǒng)應(yīng)用于植物模擬時,首先根據(jù)其符號元和替換規(guī)則產(chǎn)生一系列字符串,然后讀取字符,按照不同字符表示的意義來執(zhí)行不同的動作2。簡單描述如下:第一步:生成字符串1) 聲明并設(shè)置產(chǎn)生式規(guī)則2) 聲明并設(shè)置起始點、初始角、迭代步長以及迭代上限等控制參數(shù)3) 循環(huán)用替換字符串替換種子第二步:讀取字符并畫圖4) 逐個讀取字符串中的每個字符5) 根據(jù)讀取到的字符采取不同的動作讀取F時,畫線段;讀取+時,逆時針旋轉(zhuǎn)讀取-時,順時針旋轉(zhuǎn)讀取時,進棧,記錄當(dāng)前狀態(tài)讀取時,出棧圖1為筆者用matl

4、ab為平臺實現(xiàn)的基于L-系統(tǒng)思想的分形樹,其產(chǎn)生式規(guī)則分別為FF-F+F+F+F-F-F、F+FF-FF、 F+FF-F+F。 圖1 不同生成規(guī)則的分形樹隨著植物模擬技術(shù)的發(fā)展,一些研究者提出在分形樹的基礎(chǔ)上加入隨機因子,這樣的生成樹就不是完全按照某一確定的規(guī)則,體現(xiàn)了自然界由于外界條件造成的樹木生長的偶然性,這樣得到的分形樹更自然,更逼真。丁永勝等人3曾以matlab實現(xiàn)分形樹模擬,其分形樹是使用單一規(guī)則實現(xiàn)的,整棵樹采用同一種自相似規(guī)則,每一個分枝的分形方法都相同,其生成樹的結(jié)果如圖1。筆者在其基礎(chǔ)上,對程序進行了改進,加入了隨機因子,整棵樹的生成采用三種自相似規(guī)則(如程序中的p1、p2和

5、p3),在樹木分枝的部位,到底采用哪一種規(guī)則生成新的枝干部分,由隨機數(shù)決定。如function Sltree(n)程序中,使用c=rand(1)函數(shù)隨機生成一個01之間的數(shù)字,在分枝部位,如果生成的隨機數(shù)是0.71之間,則采用p1=FF+F+F-+F規(guī)則生成新的枝干;若生成的隨機數(shù)是0.350.7,則采用p2=F+FF-F+F規(guī)則生成新的枝干;若生成的隨機數(shù)是00.35,則采用p3=FF-F+F+F+F-F-F規(guī)則生成新的枝干。這樣生成的樹木體現(xiàn)了自然界的外界條件對樹木生長的影響,使樹木的外觀看起來更加逼真。程序如下:function Sltree(n)S=F;a=pi/10;A=pi/2;z

6、=0;zA=0,pi/2;p3=FF-F+F+F+F-F-F;p1=FF+F+F-+F;p2=F+FF-F+F;圖2 隨機分形樹仿真圖for k=2:n c=rand(1) if c=0.7 S=strrep(S,F,p1); elseif c=0.35 S=strrep(S,F,p2); else S=strrep(S,F,p3); endendfigure;hold on;for k=1:length(S); switch S(k); case F plot(z,z+2*exp(i*A),linewidth,2); z=z+2*exp(i*A); case + A=A+a; case -

7、A=A-a; case zA=zA;z,A; case z=zA(end,1);A=zA(end,2); zA(end,:)=; otherwise endend 加入了隨機因子之后,生成的分形樹更具隨機性,更逼真。由于具有隨機性,每次執(zhí)行程序,所生成的分形樹是具有不同形態(tài)的。實驗中,還可以根據(jù)需求調(diào)整生成規(guī)則,增加生成規(guī)則的數(shù)量,調(diào)整隨機數(shù)的范圍等,以得到不同的樹。2.2 基于迭代函數(shù)系統(tǒng)的仿真迭代函數(shù)系統(tǒng)(IFS)是分形理論的重要分支,將待生成圖像由許多整體自相似的小塊拼接而成,局部是整體的一個小復(fù)制品。主要技術(shù)有相似變換及仿射變換。相似變換可放大縮小甚至旋轉(zhuǎn),但不變形;仿射變換指在不同方

8、向上變化比率不同的比例變換,一般會改變圖形中向量的夾角、點與點之間的距離、圖形的面積等,可以將圖形進行縮放、伸長、剪切、扭曲等。仿射變換的數(shù)學(xué)表達式為如下,其中a,b,c,d,e,f 均為實數(shù):利用IFS方法生成分形圖的關(guān)鍵是找出相應(yīng)的IFS碼,根據(jù)已有的研究結(jié)果,給出如下一組IFS碼4。本文作者利用matlab工具及這些IFS碼,實現(xiàn)了IFS樹的模擬。表1 一組IFS樹的IFS碼iabcdef1-0.040-0.19-0.47-0.120.320.65000.560.061.5630.410.46-0.390.610.460.440.52-0.350.250.74-0.480.38筆者在丁永

9、勝等人3的研究結(jié)果的基礎(chǔ)上,采用不同與丁永勝等人的變換公式,如IFST(N)函數(shù)中的變換公式xp=a1*x+b1*y+e1, yp=c1*x+d1*y+f1,根據(jù)表1的IFS樹的IFS碼,并重新調(diào)整了隨機數(shù)的分布,實現(xiàn)生成IFS樹,如圖3。程序如下:functionxx,yy=IFST(N)x=0;y=0;p=rand(1,N);AA=-0.04,0,-0.19,-0.47,-0.12,0.3;0.65,0,0,0.56,0.06,1.56;0.41,0.46,-0.39,0.61,0.46,0.4;0.52,-0.35,0.25,0.74,-0.48,0.38xx=zeros(N,1);yy

10、=zeros(N,1);for ss=1:N;if p(1,ss)=0.25;x,y=IFS(x,y,AA(1,1),AA(1,2),AA(1,3),AA(1,4),AA(1,5),AA(1,6);elseif p(1,ss)=0.5;x,y=IFS(x,y,AA(2,1),AA(2,2),AA(2,3),AA(2,4),AA(2,5),AA(2,6);elseif p(1,ss)=0.75; x,y=IFS(x,y,AA(3,1),AA(3,2),AA(3,3),AA(3,4),AA(3,5),AA(3,6);elsex,y=IFS(x,y,AA(4,1),AA(4,2),AA(4,3),A

11、A(4,4),AA(4,5),AA(4,6);endxx(ss)=x;yy(ss)=y;endplot(xx,yy,.b,markersize,2);set(gcf,color,w)axis square off;functionxp,yp=IFS(x,y,a1,b1,c1,d1,e1,f1)xp=a1*x+b1*y+e1;yp=c1*x+d1*y+f1;return圖3為用matlab程序?qū)崿F(xiàn)的以表1中的IFS碼生成的IFS分形樹,調(diào)整IFS碼為適當(dāng)?shù)臄?shù)值,還可以形象地模擬蕨葉、楓葉、蒿草等各種自然界的植物。3 結(jié)語虛擬植物技術(shù)已經(jīng)成為當(dāng)今計算機圖形學(xué)應(yīng)用領(lǐng)域的研究熱點,本文結(jié)合最常用的模擬

12、植物形態(tài)的兩種方法L-系統(tǒng)和迭代函數(shù)系統(tǒng)IFS,以matlab軟件為運行平臺,實現(xiàn)了分型植物的形態(tài)模擬。Matlab軟件有功能強大的繪圖工具箱,實現(xiàn)植物模擬的程序代碼簡潔,今后可多嘗試使用matlab實現(xiàn)更加復(fù)雜的虛擬植物技術(shù)。參考文獻:1 康軍廣. 基于分形理論的植物模擬J. 河北工業(yè)大學(xué)碩士學(xué)位論文. 2006年12月:摘要2 武志峰. 基于分形理論的植物模擬方法研究J. 大連理工大學(xué)碩士學(xué)位論文. 2005年16月:683 丁永勝,堵秀鳳,張水勝. Matlab分形植物模擬J. 齊齊哈爾大學(xué)學(xué)報. 2008.5(第24卷第3期):63664 劉茗. 分形植物形態(tài)的模擬算法研究J. 蘇州大

13、學(xué)同等學(xué)歷碩士學(xué)位論文. 2006年10月:2729Matlab applied in simulating random fractal natural treesYou hong-xia ( Nantong Textile Vocational Technology College, Nandtong , China )Abstract: L system and iterated function system, two typical methods on simulating plants were described in this paper. According to these two methods, random fractal trees were simulated with matlab functions and programs. The random fractal trees configurations were natural and living. In matlab software, functions and tools for drawing were powerful. In this paper, the programs to simulate random fractal trees were compact and ea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論