999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于分形技術(shù)的竹生長模擬研究

2013-04-16 10:44:58
電子世界 2013年5期
關(guān)鍵詞:生長

自然景物在外部形態(tài)上呈現(xiàn)出千姿百態(tài),其生長都具有一定的盲目性,但是分枝模式總有規(guī)律可循,對這些結(jié)構(gòu)進行具體的放大會發(fā)現(xiàn)不規(guī)則程度是一樣的,即他們的自相似性。分形以其獨特的手段來解決不規(guī)則形態(tài)物體的仿真問題,利用空間結(jié)構(gòu)的對稱性和自相似性,可以將自然界中絕大多數(shù)的非規(guī)則圖形真實地在計算機上再現(xiàn)。自然界中大多數(shù)樹木和草的分叉結(jié)構(gòu)都具有分形的性質(zhì),為計算機分形模擬提供了基礎(chǔ)。據(jù)此如何真實地描述竹子的生長變化過程,本文在算法及實現(xiàn)上做了一些研究。

1.主要的相關(guān)技術(shù)

1.1 分形模擬方法

分形作為一種方法,在圖形學領(lǐng)域主要是利用迭代、遞歸等技術(shù)來實現(xiàn)某一具體的分形構(gòu)造。它的主要任務(wù)是以分形幾何學為數(shù)學基礎(chǔ),構(gòu)造非規(guī)則的幾何圖素,從而實現(xiàn)分形體的可視化,以及對自然景物的逼真模擬。

植物的分形模擬就是基于分形理論的植物形態(tài)模擬,其原理是利用植物自身結(jié)構(gòu)的分形性質(zhì)(結(jié)構(gòu)的自相似性)生成植物圖形或圖像的方法。當前,分形植物模擬的方法主要有L-系統(tǒng)、迭代函數(shù)系統(tǒng)(Iterated Function System,IFS)、受限擴散凝聚(Diffusion Limited Aggregation,DLA)模型和粒子系統(tǒng)。這四種方法的算法原理互不相同,模擬對象也是各有側(cè)重。

1.2 IFS(迭代函數(shù)系統(tǒng))

迭代函數(shù)系統(tǒng)是從一個坐標系到另一個坐標系的映射系統(tǒng),其算法分為確定性算法和隨機性算法。

確定性算法是指用以迭代的規(guī)則是確定性的,它們由一組仿射變換(如R1,R2,R3等)構(gòu)成。隨機性的算法,又被人們稱為混沌游戲,指迭代過程是不確定的,每一次迭代采用哪一個規(guī)則,即Ri(i=1∽N)中具體哪一個,不是預先定好的,而是類似靠擲骰子的辦法來決定。也既是說,隨機地從Ri(i=1∽N)中選一個迭代規(guī)則迭代一次,再從Ri(i=1∽N)中選一個迭代一次,依此類推,那么最終的生成圖形是Ri(i=1∽N)中各個迭代規(guī)則的并集。令最終生成的圖形為M,它要滿足如下集合關(guān)系:M=R1∪R2∪…∪RN。

數(shù)學上的仿射變換是一種由旋轉(zhuǎn)、平移、映射構(gòu)成的變換,仿射變換可以由一個函數(shù)來表示,這也正是命名“迭代函數(shù)系統(tǒng)”的原因。簡單地說,迭代函數(shù)系統(tǒng)就是指把仿射變換函數(shù)系統(tǒng)經(jīng)過多次迭代形成的分形。

2.竹子的分形生成研究及算法

2.1 分枝模式

雖然植物在外部形態(tài)上呈現(xiàn)出千姿百態(tài),但是植物的分枝模式總是有規(guī)律可循的,外部形態(tài)是其內(nèi)部某種形態(tài)控制機制的反映,而外部形態(tài)是可以用植物的分枝模式來描述的。植物的分枝模式分2種,單軸分枝模式和合軸分枝模式。

單軸分枝模式。頂芽不斷向上生長,形成主干。同時側(cè)芽也發(fā)展成為側(cè)枝,側(cè)枝又以同樣方式形成次級側(cè)枝,但側(cè)枝不及主干粗、長。這種分枝模式有明顯的主軸,稱為單軸分枝模式,單軸分枝的主干上能產(chǎn)生各級分枝,主干的伸長和粗細比側(cè)枝強得多。因此這種分枝模式主干特征顯著,如竹子、松樹、云杉、楊樹等。

合軸分枝模式。頂芽發(fā)育一定時期后死亡或生長緩慢,而位于頂芽下面的側(cè)枝就取而代之,繼續(xù)發(fā)育,形成強壯的側(cè)枝,連接在原來的主軸上。之后,這種側(cè)枝上的頂芽又停止發(fā)育,再由它下面的側(cè)芽來代替,便形成了彎曲的主軸。以這種方式分枝植物的地上部分呈開放狀態(tài),典型的如柳樹、榆樹等等。

2.2 竹干的分形算法

前文提到竹子的生長變化屬于單軸分枝模式。本文采用的分形算法為:以一個竹干作為單位來向上依次遞歸形成竹子,如圖1所示。假設(shè)最接近地面的那一段竹干AB長為L,并且與地面夾角為a,兩側(cè)枝CD、BE與主干的夾角皆為b,側(cè)枝與主干的長度比例為s2。其中主干起點A(x,y),主干終止和右側(cè)枝起點B(x2,y2),右側(cè)枝終點E(x2R,y2R),左側(cè)枝起點C(x1,y1)以及左側(cè)枝終點D(x1L,y1L)。

主要步驟如下:

(1)繪制主干AB,即用畫筆描繪曲線(x2,y2)-(x,y);

主干終止B點坐標

x2=x+L*cos(a*Pi),

y2=y+L*sin(a*Pi);

右側(cè)枝終止E點坐標

x2R=x2+L/s2*cos((a+b)*Pi),

y2R=y2+L/s2*sin((a+b)*Pi);

圖1 竹干生成的坐標數(shù)據(jù)

圖2 左側(cè)枝中間葉子生成

左側(cè)枝開始C點坐標

x1=x+L/s2*cos(a*Pi),

y1=y+L/s2*sin(a*Pi);

左側(cè)枝終止D點坐標

x1L=x1+L/s2*cos((a-b)*Pi),

y1L=y1+L/s2*sin((a-b)*Pi);

(2)用畫筆畫出第一節(jié)竹干以及兩邊側(cè)枝的模型,然后將B點坐標作為A點重新計算出第二節(jié)竹節(jié)的各個側(cè)枝起點以及終點坐標,再用畫筆繪圖函數(shù)完成第二節(jié)竹干的繪制,算是一次遞歸過程。竹干的生成用到了Graphics類庫里面的畫筆描繪:

●竹干畫筆寬度以及繪制竹干

gg.setStroke(new BasicStroke(6));

ig.drawLine((int)x,(int)y,(int)x2,(int)y2);

●側(cè)枝畫筆寬度以及繪制側(cè)枝

gg.setStroke(new BasicStroke(2));

ig.drawLine((int)x2,(int)y2,(int)x2R,(int)y2R);

ig.drawLine((int)x1,(int)y1,(int)x1L,(int)y1L);

2.3 竹葉的生成算法

位于側(cè)枝上的葉子也采用了類似的算法,以左側(cè)枝中間的葉子為例,其他的側(cè)枝葉子可以由此遞歸、迭代產(chǎn)生:

以一個多邊形來描繪一片葉子,如圖2所示。

假設(shè)左側(cè)枝終點作為該葉子的起點,葉子的終點設(shè)為(xLLeafEnd,yLLeafEnd),葉子的長度與主干的長度比值0.4,葉子中間突起兩點坐標分別為(xLLeafLCenter,yLLeafLCenter)和(xLLeafRCenter,yLLeafRCenter)。

左邊葉子的終點坐標

xLLeafEnd=x1+(L/s2+L*0.4)*cos((ab)*Pi);

yLLeafEnd=y1+(L/s2+L*0.4)*sin((ab)*Pi);

左邊葉子的中間突起的兩點坐標

xLLeafLCenter=x1L+L*0.2*cos((ab)*Pi)/2;

yLLeafLCenter=y1L;

xLLeafRCenter=x1L;

yLLeafRCenter=y1L+L*0.2*sin((ab)*Pi)/2;

算出竹葉的4個點之后就通過繪制、填充多邊形來達到竹葉的繪制效果。

葉子的填充用到了Graphics中的多邊形繪制以及色彩填充,具體代碼如下:

Polygon pointleft=new Polygon();

pointleft.addPoint((int)x1L,(int)y1L);

pointleft.addPoint((int)xLLeafRCenter,(int)yLLeafRCenter);

pointleft.addPoint((int)xLLeafE-nd,(int)yLLeafEnd);

pointleft.addPoint((int)xLLeafLC-enter,(int)yLLeafLCenter);

這樣就可以完成第一個竹干以及葉子的繪制,上層的竹干可以由第一節(jié)竹干遞歸、迭代生成。

3.結(jié)論

根據(jù)竹子的分枝模式,可以采用迭代函數(shù)系統(tǒng)中確定性算法與隨機性算法相結(jié)合的方法動態(tài)模擬竹林生長的各種形態(tài),如竹節(jié)生長、葉子生長直至樹葉枯黃掉落。實驗利用Java語言的GUI圖形用戶界面設(shè)計與AWT畫圖雙緩沖,輕松地的完成繪制主干及分支、樹葉以及根據(jù)生長周期設(shè)置樹葉顏色變化直至枯黃掉落。此外利用畫筆直接描繪出竹干,以及設(shè)計一個生長速率變量來控制程序的遞歸、迭代速度,從而控制竹子的生長速度。在模擬過程中,引入了雙緩沖技術(shù)對生長動畫的描繪,可以讓整個生長過程沒有出現(xiàn)閃爍,圖像更流暢。

實驗的難點在于分形圖形算法的構(gòu)造即如何將竹林的生長模式轉(zhuǎn)化成算法來編寫程序?qū)崿F(xiàn),本文采用分形算法中的L-系統(tǒng),并且在具體應(yīng)用中加以適當改進,實驗表明技術(shù)是可行的,實現(xiàn)方法的效果也是良好的。

本文的生長模式固定,即每一次生長的圖形一樣,下一步將進一步研究自然性,即分支產(chǎn)生的隨機分支偏轉(zhuǎn)角度的隨機性。

[1]陳曉,彭國華,楊康.基于分形L系統(tǒng)生成三維景物的算法研究[J].計算機仿真,2009,07.

[2]劉振興.基于功能-結(jié)構(gòu)和L-系統(tǒng)的植物仿真建模[D].天津:天津工業(yè)大學學報,2008.

[3]羅燕,吳中福,郭選昌,吳剛.分形算法的仿真“竹”的實現(xiàn)[J].重慶:重慶大學學報,2010,33(12).

[4]孫博文.分形算法與程序設(shè)計——Java實現(xiàn)[M].北京:科學出版社,2004,11.

[5]Lindenmayer,A Mathematical models for cellular interaction in development,Journal of Theoretical Biology,1996:280-315.

[6]孫永香,劉彤,鄭永果等.虛擬植物的建模方法[J].系統(tǒng)仿真學報,2006,18(6):0263-04.

猜你喜歡
生長
野蠻生長
碗蓮生長記
小讀者(2021年2期)2021-03-29 05:03:48
生長的樹
自由生長的家
美是不斷生長的
快速生長劑
共享出行不再“野蠻生長”
生長在哪里的啟示
華人時刊(2019年13期)2019-11-17 14:59:54
野蠻生長
NBA特刊(2018年21期)2018-11-24 02:48:04
生長
文苑(2018年22期)2018-11-19 02:54:14
主站蜘蛛池模板: 18禁色诱爆乳网站| 免费看一级毛片波多结衣| 精品成人一区二区| 国产精品成人第一区| 国产欧美在线| 亚洲视频无码| 国产91视频免费观看| 激情综合网址| 亚洲精品无码抽插日韩| 国产麻豆aⅴ精品无码| 在线国产91| 91人妻在线视频| 亚洲国产系列| 亚洲性日韩精品一区二区| 久久一级电影| 日韩欧美国产区| 国产亚洲欧美在线人成aaaa | 谁有在线观看日韩亚洲最新视频 | 国产三级毛片| 福利片91| 波多野结衣中文字幕一区二区| 欧美中文字幕一区二区三区| 正在播放久久| 3344在线观看无码| 色综合婷婷| 99热这里只有精品久久免费| 国产乱人视频免费观看| 思思热在线视频精品| 99热这里只有精品免费国产| 日韩亚洲高清一区二区| 久久综合久久鬼| 亚洲区视频在线观看| 99热这里只有免费国产精品| 日韩欧美一区在线观看| 欧美伦理一区| 91在线播放国产| 免费国产无遮挡又黄又爽| 国产真实乱人视频| 国产熟睡乱子伦视频网站| 婷婷午夜天| 国产视频a| 鲁鲁鲁爽爽爽在线视频观看| 亚洲精品视频免费| 国产91在线|中文| 亚洲一区免费看| 动漫精品中文字幕无码| 在线看国产精品| 欧美劲爆第一页| 五月综合色婷婷| 久久青草精品一区二区三区 | 欧美色视频网站| 亚洲另类色| 欧美成人二区| 日本欧美视频在线观看| 亚洲精品天堂在线观看| 免费一极毛片| 亚洲丝袜中文字幕| 亚洲日韩日本中文在线| 国产乱子伦手机在线| 一级毛片在线播放免费观看 | 青青草原国产| 婷婷亚洲天堂| 婷婷亚洲综合五月天在线| 日韩毛片免费观看| 精品国产欧美精品v| 国产精品网址在线观看你懂的| 人人妻人人澡人人爽欧美一区| 国产成人综合在线观看| 国产迷奸在线看| 秋霞午夜国产精品成人片| 亚洲首页在线观看| 久久网欧美| 国产欧美日韩综合在线第一| 老司机精品久久| 乱人伦视频中文字幕在线| 欧美第九页| 亚洲三级成人| 自拍亚洲欧美精品| 欧美三级视频在线播放| AV网站中文| 国产亚洲精品自在线| 四虎免费视频网站|