使用MATLAB 實現(xiàn)隨機(jī)分形樹模擬億牌地板找陳晨15172411677_第1頁
使用MATLAB 實現(xiàn)隨機(jī)分形樹模擬億牌地板找陳晨15172411677_第2頁
使用MATLAB 實現(xiàn)隨機(jī)分形樹模擬億牌地板找陳晨15172411677_第3頁
使用MATLAB 實現(xiàn)隨機(jī)分形樹模擬億牌地板找陳晨15172411677_第4頁
使用MATLAB 實現(xiàn)隨機(jī)分形樹模擬億牌地板找陳晨15172411677_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

學(xué)習(xí)資料 使用 MATLAB實現(xiàn)隨機(jī)分形樹模擬 尤鴻霞 (南通紡織職業(yè)技術(shù)學(xué)院,南通, 226007) 摘要: 闡述了植物模擬的典型方法 L-系統(tǒng)及迭代函數(shù)系統(tǒng) (IFS)的基本原理。根據(jù)這兩種方法,利用Matlab軟件工具,模擬了帶有隨機(jī)因子的分形樹,模擬的分形樹形態(tài)生動逼真。 Matlab具有強(qiáng)大的繪圖工具和函數(shù)系統(tǒng),實現(xiàn)隨即分形樹模擬的程序很簡潔。 關(guān)鍵字: 分形樹; L-系統(tǒng); 迭代函數(shù)系統(tǒng) IFS; matlab 中圖分類號: TP391.9 文獻(xiàn)標(biāo)識碼: A 1 介紹 自然界中種類繁多的植物大都具 有自我相似的分形特征。近年來,隨著分形理論的發(fā)展,分形理論在植物模擬領(lǐng)域得到了廣泛的應(yīng)用?;诜中卫碚摰闹参锬M方法主要有 L-系統(tǒng)、迭代函數(shù)系統(tǒng)、粒子系統(tǒng)等 1。本文以 L系統(tǒng)、迭代函數(shù)系統(tǒng)( IFS)的算法思想為基礎(chǔ),以 Matlab為編程工具,借助 Matlab的繪圖功能,實現(xiàn)了隨機(jī)分形樹的模擬。 2分形模擬的實現(xiàn) 2.1 基于 L系統(tǒng)的仿真 1968 年,著名理論生物學(xué)家 Lindenmayer,在研究植物形態(tài)的進(jìn)化和構(gòu)造時,提出了一種文法描述方法作為植物生長的數(shù)學(xué)理論,即 L 系統(tǒng),它能很好地表達(dá)植物的分枝特征。 之后,各地的研究人員開始關(guān)注 L-系統(tǒng),并對其做了各種改進(jìn)。至今, L-系統(tǒng)仍然是植物模擬的一種重要思想方法。 L-系統(tǒng)是一種符號重寫系統(tǒng),基本思想為字符串替換,其替換規(guī)則基本如下: b a, a ab。 則其基本演變規(guī)律為: b a ab aba abaab abaababa abaababaabaab。字符串的增長符合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) 讀取 時,進(jìn)棧,記錄當(dāng)前狀態(tài) 讀取 時,出棧 圖 1 為筆者用 matlab 為平臺實現(xiàn)的基于 L-系統(tǒng)思想的分形樹,其產(chǎn)生式規(guī)則分別為FF-F+F+F+F-F-F、 F+FF-FF、 F+FF-F+F。 學(xué)習(xí)資料 圖 1 不同生成規(guī)則的分形樹 隨著植物模擬技術(shù)的發(fā)展,一些研究者提出在分形樹的基礎(chǔ)上加入隨機(jī)因子,這樣的生成樹就不是完全按照某一確定的規(guī)則,體現(xiàn)了自然界由于外界條件造成的樹木生長的偶然性,這樣得到的分形樹更自然,更逼真。丁永勝等人 3曾以 matlab 實現(xiàn)分形樹模擬,其分形樹是使用單一規(guī)則實現(xiàn)的,整棵樹采用同一種自相似規(guī)則,每一個分枝的分形方法都相同,其生成樹的結(jié)果如圖 1。筆者在其基礎(chǔ)上,對程序進(jìn)行了改進(jìn),加入了隨機(jī)因子,整棵樹的生成采用三種自相似規(guī)則(如程序中的 p1、 p2和 p3),在樹木分枝的部位,到底采用哪一種規(guī)則生成新的枝干部分,由隨機(jī)數(shù)決定。如 function Sltree(n)程序中,使用 c=rand(1)函數(shù)隨機(jī)生成一個 01之間的數(shù)字,在分枝部位,如果生成的隨機(jī)數(shù)是 0.71 之間,則采用 p1=FF+F+F-+F規(guī)則生成新的枝干;若生成的隨機(jī)數(shù)是 0.350.7,則采用 p2=F+FF-F+F規(guī)則生成新的枝干;若生成的隨機(jī)數(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=0;zA=0,pi/2; p3=FF-F+F+F+F-F-F;p1=FF+F+F-+F;p2=F+FF-F+F; 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); end end figure;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 - A=A-a; case zA=zA;z,A; case z=zA(end,1); A=zA(end,2); zA(end,:)=; otherwise end end 加入了隨機(jī)因子之后,生成的分形樹更具隨機(jī)性,更逼真。由于具有隨機(jī)性,每次執(zhí)行程序, 圖 2 隨機(jī)分形樹仿真圖 學(xué)習(xí)資料 所生成的分形樹是具有不同形態(tài)的。實驗中,還可以根據(jù)需求調(diào)整生成規(guī)則,增加生成規(guī)則的數(shù)量,調(diào)整隨機(jī)數(shù)的范圍等,以得到不同的樹。 2.2 基于迭代函數(shù)系統(tǒng)的仿真 迭代函數(shù)系統(tǒng)( IFS)是分形理論的重要分支,將待生成圖像由許多整體自相似的小塊拼接而成,局部是整體的一個小復(fù)制品。主要技術(shù)有相似變換及仿射變換。相似變換可放大縮小甚至旋轉(zhuǎn),但不變形;仿射變換指在不同方向上變化比率不同的比例變換,一般會改變圖形中向量的夾角、點與點之間的距 離、圖形的面積等,可以將圖形進(jìn)行縮放、伸長、剪切、扭曲等。 仿射變換的數(shù)學(xué)表達(dá)式為如下,其中 a, b, c, d, e, f 均為實數(shù): fdycxyebyaxx 利用 IFS方法生成分形圖的關(guān)鍵是找出相應(yīng)的 IFS 碼,根據(jù)已有的研究結(jié)果,給出如下一組 IFS碼 4。本文作者利用 matlab工具及這些 IFS碼,實現(xiàn)了 IFS樹的模擬。 表 1 一組 IFS樹的 IFS碼 i a b c d e f 1 -0.04 0 -0.19 -0.47 -0.12 0.3 2 0.65 0 0 0.56 0.06 1.56 3 0.41 0.46 -0.39 0.61 0.46 0.4 4 0.52 -0.35 0.25 0.74 -0.48 0.38 筆者在丁永勝等人 3的研究結(jié)果的基礎(chǔ)上,采用不同與丁永勝等人的變換公式,如 IFST(N)函數(shù)中的變換公式 xp=a1*x+b1*y+e1, yp=c1*x+d1*y+f1,根據(jù)表 1的 IFS樹的 IFS碼,并重新調(diào)整了隨機(jī)數(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.38 xx=zeros(N,1);yy=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); else x,y=IFS(x,y,AA(4,1),AA(4,2),AA(4,3),AA(4,4),AA(4,5),AA(4,6); end xx(ss)=x;yy(ss)=y; end plot(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仿真的 IFS分形樹 學(xué)習(xí)資料 圖 3為用 matlab程序?qū)崿F(xiàn)的以表 1中的 IFS碼生成的 IFS分形樹,調(diào)整 IFS 碼為適當(dāng)?shù)臄?shù)值,還可以形象地模擬蕨葉、楓葉、蒿草等各種自然界的植物。 3 結(jié)語 虛擬植物技術(shù)已經(jīng)成為當(dāng)今計算機(jī)圖形 學(xué)應(yīng)用領(lǐng)域的研究熱點,本文結(jié)合最常用的模擬植物形態(tài)的兩種方法 L-系統(tǒng)和迭代函數(shù)系統(tǒng) IFS,以 matlab軟件為運行平臺,實現(xiàn)了分型植物的形態(tài)模擬。Matlab軟件有功能強(qiáng)大的繪圖工具箱,實現(xiàn)植物模擬的程序代碼簡潔,今后可多嘗試使用 matlab實現(xiàn)更加復(fù)雜的虛擬植物技術(shù)。 參考文獻(xiàn): 1 康軍廣 . 基于分形理論的植物模擬 J. 河北工業(yè)大學(xué)碩士學(xué)位論文 . 2006年 12月:摘要 2 武志峰 . 基于分形理論的植物模擬方法研究 J. 大連理工大學(xué)碩士學(xué)位論文 . 2005年 16月: 6 8 3 丁永 勝,堵秀鳳,張水勝 . Matlab 分形植物模擬 J. 齊齊哈爾大學(xué)學(xué)報 . 2008.5(第 24 卷第 3期) :63 66 4 劉茗 . 分形植物形態(tài)的模擬算法研究 J. 蘇州大學(xué)同等學(xué)歷碩士學(xué)位論文 . 2006年 10月: 27 29 Matlab applied in simulating random fractal natural trees You hong-xia ( Nantong Textile Vocational Technology College, Nandtong 226007, 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 easy to implement.

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論