L-systems之研究與應(yīng)用.docx_第1頁
L-systems之研究與應(yīng)用.docx_第2頁
L-systems之研究與應(yīng)用.docx_第3頁
L-systems之研究與應(yīng)用.docx_第4頁
L-systems之研究與應(yīng)用.docx_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

L-systems之研究與應(yīng)用一、 研究動機:發(fā)現(xiàn)碎形之美。且目前一般圖形檔案格式過於龐大,欲達(dá)成經(jīng)濟效益,藉由程式用字串的觀念來處理具有相似性的圖形。二、 研究目的:L-system4.0之作者自定出一套語法,藉由他的語法了解其中的優(yōu)缺點,並能充分運用其特色,建立一資料庫,製作出具有意義的圖形語法。進(jìn)而欲從其中找出規(guī)則整理成資料庫,以建立一個在這個軟體之上的應(yīng)用環(huán)境。讓使用者可以不必親自學(xué)習(xí)語法而可以利用可親介面直接達(dá)到畫樹的功能。三、 研究工具:L-system4.0Visual Basic6.0四、 研究內(nèi)容:1. L-system概述:Lindenmayer systems(簡稱L-systems)是一個模擬植物生長的數(shù)學(xué)理論。其重點是在強調(diào)植物的拓樸學(xué),也就是說,其種子和植物個體的生長關(guān)係。L-systems中的幾何理論常被用在模擬樹的生長。L-systems是由圓角長方形在一維空間裡連接而成,通常是用來繪製基本碎形,在1974年Frijters,Lindenmayre,Hogeweg和Hesper為了繪製更複雜的高等植物,就增加了角度變化以及長度變化。在此之後,即有許多人投入研究,使其發(fā)展得更為成熟。2. L-systems的語法:L-systems主要是利用文字代替圖形,其列表如下:COMMANDSDrawing:Structure:FDraw full unit Store current locationZDraw half unitReturn to locationMovement:Start polygon shapefMove full unitEnd polygon shapezMove half unitIncrement / Decrement:Orientation: Inc. length by 1.1+Turn leftDec. length by 0.9-Turn right;Inc. angle by 1.1&Pitch down:Dec. angle by 0.9Pitch up?Inc. thickness by 1.4Roll rightAdditional:Special Orientation:c Increment color index| Turn 180 degc(x)Set color index to xRoll 180 degEnd of file$Roll until Horizontal#CommentTurn/Pitch/RolltPitch down 註:關(guān)於顏色的變化如下表c(1)綠c(8)土黃c(2)藍(lán)綠c(9)亮紫c(3)亮綠c(10)亮黃c(4)亮藍(lán)綠c(11)灰c(5)寶藍(lán)c(12)銀灰c(6)紫defaultc(1)綠3. 程式結(jié)構(gòu):範(fàn)例:4遞迴次數(shù)60預(yù)設(shè)角度5寬度(厚度)為長度的5%&(90)F-F-F起始方向和種子F=F+FF+F規(guī)則一結(jié)束符號4. Edge rewriting此範(fàn)例為Edge rewriting ,所謂Edge rewriting即是用前一次依規(guī)則跑出來的圖形取代此次的線段,逐次分析如下:4逐次分析”F”1. F=F+F-F+F2. F= F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F3. F= F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + +F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F- F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F 4. F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F+ F+F-F+F- F+F-F+F+ F+F-F+F - F+F-F+F+ F+F-F+F+ F+F-F+F+ F+F-F+F- F+F-F+F+ F+F-F+F+F+F-F+F+ F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F + F+F-F+F + F+F-F+F - F+F-F+F + F+F-F+F605&(90)F-FFF= F+F-F+F5. Node rewriting7逐次分析”X”1. X=F+F-+2. X=F+F+F-+F-F+F-+F+F-+3. X= F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F+F+F-+F-F+F-+4. X= F+F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F-F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+5. X= F+F+F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F-F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F-F+F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F-F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F+F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+F-F+F+F+F-+F-F+F-+F-F+F+F-+F-F+F-+201&(90)+(90)XX=F+XF-X+XF=FF此範(fàn)例為Node rewriting,既edge rewriting之後,欲在每次取代中增加一些線段,就此產(chǎn)生了edge rewriting。為了達(dá)此目的,L-systems就擴充了其他除了”F” 和”Z”繪圖符號之外本身不具有繪製或移動的符號。所謂Node rewriting就是把原有的每個規(guī)則用其上一次所產(chǎn)生的形狀代入,且第一次為無值(即不繪製線條亦不移動位置),所以不包括F, Z, f, z??催@個範(fàn)例,以X為一個規(guī)則(第5行),第一次為無值,直接掠過,第二次就用第一次產(chǎn)生的”F+F-+”為第二次的X代入值,且每條直線都是兩線段(第6行),依此類推,直到第七次(第1行),並輸出第七次的圖形。7. 比較edge rewriting和node rewriting#Edge rewriting#Node rewriting33909011&(90)+(90)Fl&(90)+(90)FlFl=Fl+Fr+l=l+rF +Fr=-Fl-Frr=-Fl-r8. 樹的解析把seed的部分改成局部(例如: A, B, L),視表格中的英文字母為依據(jù),而表格中的數(shù)字則是表示程式碼中的第一行迴圈次數(shù)的實際數(shù)字,所以會出現(xiàn)空白欄的現(xiàn)象?!?”在程式碼中為註解符號,有加”#”該行之後的文字都跳過。結(jié)構(gòu)一103040c(12)AA=aaSaaSAS=(.8)!(.9)a=tF&(.8)!LBL(137)z&(.7)!LBL(137)B=tF-(.8)!(.9)$LCL!(.9)CC=tF+(.8)!(.9)$LBL!(.9)B# C比B慢一回。# C和B只有在互為B或C的地方交換其餘皆相同時,利用相互的呼叫(B中有C,C中有B)來達(dá)到本身遞迴的效果。L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)#葉子下表中的A即是這個圖的整個程式的圖,因為種子剛好是A所以出來的結(jié)果是相同的。惟(A1)代表此程式跑一次遞迴的成果。完成圖結(jié)構(gòu)二103020#c(12)FAL#A=F&(.7)!BL(137)&(.6)!BL(137)(.9)!(.9)AB=F-(.7)!(.9)$CL(.9)!(.9)CC=F+(.7)!(.9)$BL(.9)!(.9)B#C比B慢一次,但兩者之圖形除左右不同外皆相同L=c(8)+(45)f(10)-(45)f(20)-(45)f(10)+(45)|+(45)f(10)-(45)f(20)-(45)f(10)#葉子(A1)(A2)(A3)(A4)(B1)(B2)(B3)(B4)此時尚未成型(C1)(C2)(C3)(C4)此時尚未成型此時尚未成型(L1)(全1)(全2)(全3)(全4)完成圖9. 一行樹# 這個檔案的重點在於畫出一排的樹14530&(90)H #種子H=f(1500)TcH# 重點:向前移動並種下一棵樹T=(90)FFS# 本程式中實際畫樹的規(guī)則S=FFR(120)R(120)R(60)S# 表示有三段分支R=Ba# 單一分支的規(guī)則a=$tFCxFb# 每一片葉b=$tFDyFaB=&B# 角度變化C=+CD=-Dx=a# 延後兩次生長y=bF=(1.25)F(.8)# 把變化的長度變回來看這支範(fàn)例,姑且不論他的樹型如何,現(xiàn)在唯一要深究的就是重點的那一行,就憑著這一行的規(guī)則,使得這支範(fàn)例可以畫出所謂的一排樹。f(1500)TcH的意義,我們逐一來翻譯。f(1500)就是移動距離1500,也就是說是樹與樹之間的間格距離;T是呼叫下面的T規(guī)則,就是畫每一棵樹的規(guī)則;c是變色的意思,所以看到的每一棵樹都有不同的顏色。而最後的H讓它每一次都把前一次的紀(jì)錄代到下一次裡,不然就沒辦法表現(xiàn)出一排不同時期的樹了。完成圖 10. 樹葉統(tǒng)整:於此程式之範(fàn)例中,有許多不同種類的葉子,於此做整理:l=c(8)+f-ff-f+|+f-ff-fL=c(8)-f+f+f-|-f+f+fL=f(200)c(8)+(30)f(200)-(120)f(200)-(120)f(200)L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)11. 樹型變幻:演算法解說:規(guī)則均相同,以參數(shù)來造成外觀的不同。8 單軸植物:Tree00行號程式註解110字串代換次數(shù)245預(yù)設(shè)分支角度315預(yù)設(shè)厚度與長度的百分比4c(12)+(90)FFAL起始5A=F&(.8)!BL(137)!(.9)A規(guī)則:開始分枝時的主幹規(guī)則6B=F-(.8)!(.9)$CL!(.9)C規(guī)則:分枝規(guī)則7C=F+(.8)!(.9)$BL!(.9)B規(guī)則:分枝規(guī)則8L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)樹葉9結(jié)束各行程式意義解說:l 第一行:字串代換數(shù)次數(shù)越大,則樹齡越大,圖示如下次數(shù)5710外型l 第二行:預(yù)設(shè)分支角度角度愈小,則枝葉愈向上集中,下表以圖示表示其變化角度254560外型l 第三行:預(yù)設(shè)厚度與長度的百分比,可控制樹幹的粗細(xì)厚度11550外型l 第四行:c(12)指定枝幹顏色+(90)將樹轉(zhuǎn)正FF未開始分枝的主幹AL開始分枝的主幹(在,即規(guī)則中指定)l 第五行:主幹開始分枝後的規(guī)則A=F先往前生長一段&(.8)!BL以預(yù)設(shè)的角度分枝,分枝後生長法在(即規(guī)則,)指定,本子句即說明樹木的第一層分枝的情況,其中(.8)是指第一層分枝縮短的比例,是故,該數(shù)字愈小,樹型愈呈尖銳,如下表所示:數(shù)字0.30.60.9外型(137)俯視時分枝的角度(即平行於地面時,第一層分枝兩兩間的角度)NOTE:這些分枝並不在同一高度,是故若角度較小,可形成類式螺旋的效果。!(.9)分枝後主幹縮短亦變細(xì)&(.8)!BL中之&若換為$,則會出現(xiàn)特殊剪裁的樹形!(.9)A重覆前述再生長一節(jié)主幹以及一節(jié)分枝,但枝條變短且變細(xì),若更改其數(shù)目,則可畫出枝條粗細(xì)不同的樹數(shù)字0.10.50.9外型l 第六行:分枝規(guī)則(規(guī)則)B=F生長一段-(.8)!(.9)$CL分枝,其中的(.8)指第二層以後分枝縮短比例,是故數(shù)字愈小,則主幹以及第一層分枝愈明顯,即樹將愈稀疏,如下表:數(shù)字0.20.50.8外型!(.9)C再套用同樣規(guī)則生長,並把分枝縮短,變細(xì)。l 第七行:同第六行,本行為遞迴之用。l 第八行:樹葉,指定顏色及形狀(三角型),在前幾行有加上之處即是要加上樹葉之處。樹葉亦可置換成不同類型的葉子樹葉L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)外型樹葉L=c(8)+f-ff-f+|+f-fffL=c(8)-f+f+f-|-f+f+f外型8 轉(zhuǎn)軸植物:Tree04行號程式註解110字串代換次數(shù)230預(yù)設(shè)角度340預(yù)設(shè)厚度與長度百分比4c(12)A起始5A=aaSaaSA規(guī)則一:將小段a連接6S=(.8)!(.9)規(guī)則二:分枝縮短(變細(xì))比例7a=tF&(.8)!LBL(137)z&(.7)!LBL(137)規(guī)則三:串連分枝,使分枝旋轉(zhuǎn)向上生長8B=tF-(.8)!(.9)$LCL!(.9)C規(guī)則四:分枝規(guī)則9C=tF+(.8)!(.9)$LBL!(.9)B規(guī)則五:分枝規(guī)則10L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)樹葉11結(jié)束符號各行程式意義解說:l 第一行:字串代換次數(shù)字串代換越多次,則樹的分枝越複雜,由外觀來看,則樹齡越大。次數(shù)81011外觀l 第二行:預(yù)設(shè)角度改變此項參數(shù),則其所轉(zhuǎn)的角度即不同,其最明顯的變化是枝葉下垂的程度。角度213038外觀l 第三行:預(yù)設(shè)厚度與長度百分比改變此參數(shù)可改變樹幹之粗細(xì)。粗細(xì)104065外觀l 第五行:A=aaSaaSA此行為其主幹部分,此範(fàn)例之主幹乃由小段a旋轉(zhuǎn)連接而成l 第六行:S=(.8)!(.9)此行乃是使線段變短和變細(xì),所以小段a會逐漸縮短,若控制(.8)部分的參數(shù),則可改變其樹高。數(shù)字0.70.80.9外觀l 第七行:a=tF&(.8)!LBL(137)z&(.7)!LBL(137)此行即為先前所提過的小段a,小段a又是由分枝B所構(gòu)成,分枝B及由分枝規(guī)則B和分枝規(guī)則C所形成的結(jié)果。在此行程式中,前後兩個中括號和為一個分枝,兩個括號中各有(.8)和(.7),若將此兩個參數(shù)一起做改變,即改變了分枝和主幹線段的縮短比例,而造成在樹寬上的不同。數(shù)字0.50.81.0外觀l 第八行:B=tF-(.8)!(.9)$LCL!(.9)C第九行:C=tF+(.8)!(.9)$LBL!(.9)B此兩行為分枝之規(guī)則,在第八行及第九行中的(.8),是控制分枝中之小分枝和主分枝之間的縮短比例,若一起改變此兩項可畫出葉子疏密不同的樹。數(shù)字0.20.80.9外觀l 第十行:此行為樹葉,共有四種樹葉代換葉子L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)外觀葉子L=c(8)+f-ff-f+|+f-ff-fL=c(8)-f+f+f-|-f+f+f外觀8 轉(zhuǎn)軸植物:Tree06行號程式註解18字串代換次數(shù)230預(yù)設(shè)角度340預(yù)設(shè)厚度與長度百分比4A起始5A=aaSaaSaaSaaSaaSaaSaaSaaSaaSaaB規(guī)則一:主幹部分6S=(.9)!(.9)規(guī)則二:線段縮短(變細(xì))比例7a=tF&(.8)!LBL|zL(137)z&(.7)!LBL|zL(137)規(guī)則三:串連分枝,使分枝於旋轉(zhuǎn)向上生長8B=tFL-(.8)!(.9)$LCL|zL(.9)!(.9)C規(guī)則四:分枝規(guī)則9C=tFL+(.8)!(.9)$LBL|zL(.9)!(.9)B規(guī)則五:分枝規(guī)則10L=c(8)+(30)f(20)-(120)f(20)-(120)f(20)樹葉11結(jié)束符號各行程式意義解說:l 第一行:字串代換次數(shù)字串代換次數(shù)越多,則樹的結(jié)構(gòu)越複雜,由外觀看來,即樹齡越大。次數(shù)689外觀l 第二行:預(yù)設(shè)角度此角度為其轉(zhuǎn)方向是所用的角度,若改變此參數(shù),其最明顯的變化是枝葉下垂的程度。角度253050外觀l 第三行:預(yù)設(shè)厚度與長度百分比改變此參數(shù)可改變樹幹之粗細(xì)。粗細(xì)104065外觀l 第五

溫馨提示

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

評論

0/150

提交評論