王冬,夏乙,殷木一,劉富林,張凌,陳玉林
1.武漢軍械士官學(xué)校無(wú)人機(jī)系,武漢 430075
2.重慶航天職業(yè)技術(shù)學(xué)院教務(wù)處,重慶 400021
基于環(huán)境敏感的虛擬植物生長(zhǎng)仿真
王冬1,夏乙2,殷木一1,劉富林1,張凌1,陳玉林1
1.武漢軍械士官學(xué)校無(wú)人機(jī)系,武漢 430075
2.重慶航天職業(yè)技術(shù)學(xué)院教務(wù)處,重慶 400021
1968年,Aristid Lindenmayer引入了一種形式化的方法來(lái)對(duì)簡(jiǎn)單多細(xì)胞組織(如水藻等)的生長(zhǎng)過(guò)程進(jìn)行建模,后來(lái)被稱為L(zhǎng)系統(tǒng)。隨后L系統(tǒng)數(shù)學(xué)理論的大發(fā)展,促使了其在植物建模領(lǐng)域的應(yīng)用[1]。
在最初的L系統(tǒng)理論中,植物被看成是一種封閉的控制系統(tǒng)。這種假設(shè)的好處是使得植物的某些生長(zhǎng)過(guò)程可以用數(shù)學(xué)方式來(lái)表達(dá)。然而,脫離環(huán)境的研究卻大大降低了這種理論的應(yīng)用范圍和價(jià)值,因?yàn)樗鼉H對(duì)植物形態(tài)進(jìn)行模擬,無(wú)法反映植物的生長(zhǎng)機(jī)理。
為了模擬植物受某些局部環(huán)境的影響,如剪枝后的生長(zhǎng)情況,Prusinkiewicz[2]引入了環(huán)境敏感的L系統(tǒng),將植物生長(zhǎng)的外界環(huán)境因素和可交互的內(nèi)部控制結(jié)合在一起,模擬植物的剪枝生長(zhǎng)。文獻(xiàn)[3]在L系統(tǒng)中引入向上傳遞的資源流和向下傳遞的節(jié)點(diǎn)數(shù),模擬雙向的信息流在植物體內(nèi)的傳遞過(guò)程,實(shí)現(xiàn)了植物中某一分枝被裁剪后,其他分枝加速生長(zhǎng)現(xiàn)象的仿真。黃艷峰等[4]給出了示意性的二維植物在正方形邊界范圍內(nèi)的剪枝生長(zhǎng),然而沒(méi)有進(jìn)一步討論三維植物在剪枝條件下的生長(zhǎng)情況,因此不夠完善。
在這些相關(guān)研究工作的基礎(chǔ)上,為了能更加真實(shí)地表現(xiàn)植物在剪枝條件下的生長(zhǎng)過(guò)程,本文將環(huán)境敏感的L系統(tǒng)與三維植物生長(zhǎng)模型相結(jié)合,在L-studio平臺(tái)上實(shí)現(xiàn)了基于環(huán)境敏感的植物動(dòng)態(tài)生長(zhǎng)過(guò)程仿真,促進(jìn)了L系統(tǒng)理論在模擬植物生長(zhǎng)領(lǐng)域的應(yīng)用和發(fā)展。
2.1 環(huán)境敏感L系統(tǒng)語(yǔ)法
環(huán)境敏感的L系統(tǒng)和帶參數(shù)的語(yǔ)義相關(guān)隨機(jī)L系統(tǒng)緊密相關(guān),因此其產(chǎn)生式形式為:
id:lc<pred>rc:condà succ:prob
這里id表示產(chǎn)生式的標(biāo)示符,lc、pred、rc分別表示左語(yǔ)義、直接前驅(qū)和右語(yǔ)義,cond表示條件,succ表示后繼,prob為應(yīng)用產(chǎn)生式的概率[5]。
L系統(tǒng)的核心思想是重寫,即從公理ω開始,按照產(chǎn)生式規(guī)則,依次替換ω中的每個(gè)字符,得到新的字符串,再進(jìn)一步對(duì)新字符串中每個(gè)字符進(jìn)行替換,按照上述規(guī)則一直替換下去,直到滿足終止條件。
2.2 L系統(tǒng)的龜形圖解釋
與在每一次迭代過(guò)程中產(chǎn)生式集的并行應(yīng)用不同,字符串的圖形解釋是按從左到右的順序進(jìn)行的。L系統(tǒng)產(chǎn)生的字符串可以有多種幾何圖形解釋,而應(yīng)用最廣泛的是龜形圖解釋。這些字符串中的符號(hào)被解釋成在二維或三維空間中操縱Logo風(fēng)格的烏龜進(jìn)行機(jī)動(dòng)的命令。二維空間中字符串的龜形圖解釋如圖1所示。烏龜由它的狀態(tài)來(lái)表示,包括在笛卡爾坐標(biāo)系下的位置、朝向,以及各種屬性如當(dāng)前顏色和線寬等。烏龜在三維空間中的位置由矢量P定義,方向由矢量H、L、U定義。
圖1 二維空間中字符串的龜形圖解釋
L系統(tǒng)的龜形圖解釋是用來(lái)對(duì)模型進(jìn)行可視化的,并不涉及對(duì)L系統(tǒng)的操作。然而,當(dāng)考慮到植物與環(huán)境因素互相影響時(shí),比如與障礙物的碰撞,烏龜?shù)奈恢煤头较蛐畔⒕惋@得很重要了。因此,在環(huán)境敏感的L系統(tǒng)里,對(duì)字符串進(jìn)行幾何解釋過(guò)程中,根據(jù)龜形的位置和頭方向給查詢模塊賦值[6]。查詢模塊的形式記做:X(x,y,z),這里的X=P,H,U,L。根據(jù)X的實(shí)際值,x,y,z的值代表位置或方向矢量。在二維情況下,忽略z坐標(biāo)。
下面以一個(gè)簡(jiǎn)單的二維樹木在剪枝條件下的生長(zhǎng)為例,來(lái)說(shuō)明在環(huán)境敏感L系統(tǒng)里,應(yīng)用查詢模塊的方法。一般情況下,在樹的生長(zhǎng)過(guò)程中,頂芽具有頂端優(yōu)勢(shì)。頂端優(yōu)勢(shì)是指植物的頂芽在生長(zhǎng)上占有優(yōu)勢(shì),頂芽的存在控制側(cè)芽的生長(zhǎng)。因此,樹木在生長(zhǎng)過(guò)程中有很多側(cè)芽處于休眠狀態(tài)。剪枝算法就是一種抑制“頂端優(yōu)勢(shì)”的算法,通過(guò)將分枝系統(tǒng)中某些頂芽移除而將休眠芽激活,產(chǎn)生由外界環(huán)境調(diào)節(jié)的植物形態(tài)和結(jié)構(gòu)。
下面的L系統(tǒng)表示在二維平面內(nèi),植物只有被剪枝以后,休眠芽才能被激活的一種極端情況。本文所有算法都在L-studio 4.0平臺(tái)上實(shí)現(xiàn)[7]。
該模型使用了一個(gè)用戶自定義的函數(shù)whenprune(x,y,z)= ((y<0)||(y>SIZE×2)||(x<-SIZE)||(x>SIZE)||(z<-SIZE)||(z>SIZE)),將植物的生長(zhǎng)限定在正方形的裁剪盒內(nèi),生長(zhǎng)序列如圖2所示(順序?yàn)閺淖笾劣遥瑥纳现料拢膱D中可以看出頂芽被剪枝掉后,休眠芽得以開始生長(zhǎng)。
圖2 二維平面內(nèi)的植物剪枝生長(zhǎng)演示
前文使用了一個(gè)示意型的分枝結(jié)構(gòu)來(lái)說(shuō)明樹木對(duì)于裁剪的響應(yīng),為了產(chǎn)生實(shí)際樹木剪枝后的效果,需要引入樹木的生長(zhǎng)模型。
一個(gè)獨(dú)立樹的生長(zhǎng)可以看做是新的嫩枝不斷的添加到原來(lái)樹枝上的過(guò)程。Borchert和Slade,通過(guò)對(duì)三葉楊樹的觀察和測(cè)量,得出末端枝條數(shù)量呈指數(shù)規(guī)律增長(zhǎng)[8]。在Borchert、Slade模型的基礎(chǔ)上,本文使用一種適用于計(jì)算機(jī)仿真的模型。該模型基于以下符合植物學(xué)原理的假設(shè)。
(1)植物從年齡k=1開始生長(zhǎng),在初始條件下表示一個(gè)沒(méi)有分叉的嫩枝(shoot)。
(2)在以后的生長(zhǎng)中,新的嫩枝從位于上一年枝末端的芽開始生長(zhǎng),定義常量bmax為最大分叉率。
(3)所有的枝條,不論它們的位置和年齡都具有相同的長(zhǎng)度l,因此形成了一個(gè)半球形的樹冠。
(4)葉子生長(zhǎng)在當(dāng)年枝上,因此在樹冠外圍形成了半球?qū)拥娜~子。定義常量σmin為每個(gè)嫩枝上暴露到陽(yáng)光下的最小葉面積,目的是保證葉芽在陽(yáng)光下正常生長(zhǎng)。
根據(jù)以上假設(shè),在k個(gè)生長(zhǎng)年齡后,樹冠的最大半徑為Rk=lk,半球形樹冠的表面積最大為Sk=2πRk2=2πl(wèi)2κ2。定義第k+1年添加到樹木上的枝條數(shù)量為Nk+1,這個(gè)數(shù)值一方面受第k年添加到樹木上的枝條數(shù)量Nk乘以最大分叉率bmax的限制,另一方面受限于在保證樹葉彼此不過(guò)分遮擋情況下可能產(chǎn)生的最大嫩枝數(shù)量νk+1=Sk+1σmin。因此,Nk+1的大小為:
假定每個(gè)嫩枝上暴露到陽(yáng)光下的最小葉子面積遠(yuǎn)遠(yuǎn)小于樹冠的面積,即σmin?2πl(wèi)2κ2。植物在剛開始生長(zhǎng)階段,新嫩枝不足以覆蓋整個(gè)樹冠(bmaxNk<νk+1),新嫩枝的數(shù)量將隨樹木年齡呈指數(shù)增加,即
由于樹冠的面積只跟樹木生長(zhǎng)年齡的平方呈正比,這樣在某個(gè)年齡t時(shí),可能的新嫩枝數(shù)量將超過(guò)允許的充分暴露到陽(yáng)光里的樹枝數(shù)量,即bmaxNt≥νt。在以后的生長(zhǎng)中,植物的分叉將受樹冠面積的限制。k≥t時(shí)的平均分叉率bk為:
從上式可以看出,當(dāng)植物的生長(zhǎng)超過(guò)一定年限后,其枝條分叉的概率將逐漸減小。假設(shè)每個(gè)上一年枝只產(chǎn)生一個(gè)或兩個(gè)新的嫩枝,那么產(chǎn)生兩個(gè)新嫩枝的枝條占所有上一年枝的比例為:
其含義如下:樹木的生長(zhǎng)從節(jié)間F和頂點(diǎn)A(1)開始,頂點(diǎn)的參數(shù)表示迭代次數(shù)。產(chǎn)生式p1表示產(chǎn)生兩個(gè)新的枝條,而產(chǎn)生式p2表示產(chǎn)生一個(gè)樹枝和一個(gè)休眠芽B。它們發(fā)生的概率分別是p=min{1,(2k+1)/k2}和q=1-p。當(dāng)k<3時(shí),新嫩枝的數(shù)量呈指數(shù)增加,當(dāng)k≥3時(shí),樹枝分叉的概率由公式(1)決定。圖3表示應(yīng)用上面的L系統(tǒng)分別迭代18次后產(chǎn)生的兩個(gè)三維樹木圖像,這里FAI(φ)=90°,ALPHA(α)=32°,BEITA(β)=20°。
圖3 使用L-system2生成的三維植物形態(tài)
上面的L系統(tǒng)產(chǎn)生了包含很多休眠芽的植物結(jié)構(gòu),因此能像L-system1那樣用來(lái)仿真植物的剪枝生長(zhǎng)。將第2章和第3章的L系統(tǒng)模型相結(jié)合,得到下面的L系統(tǒng)模型。
首先公理Axiom定義了一個(gè)植物生長(zhǎng)的立方體界限BOX和符號(hào)X。產(chǎn)生式p1表示將X替換為一段節(jié)間F,一個(gè)頂點(diǎn)A(1)和一個(gè)查詢模塊:P(x,y,z);產(chǎn)生式p2、p3與L-system 2中的產(chǎn)生式類似,表示植物的自由生長(zhǎng)。產(chǎn)生式p4~p8類似于L-system 1中的p3~p7,具體如下:產(chǎn)生式p4表示頂點(diǎn)A超過(guò)了裁剪面后,將頂點(diǎn)和相應(yīng)的節(jié)間F同時(shí)移除,并產(chǎn)生激活休眠芽的信號(hào)S。產(chǎn)生式p5-p7用來(lái)向下傳遞這種信號(hào)。當(dāng)信號(hào)S到達(dá)休眠芽B時(shí),產(chǎn)生式p8表示休眠芽被激活,生成一個(gè)包含節(jié)間F、頂點(diǎn)A()和查詢模塊的側(cè)枝。
產(chǎn)生式p8中頂點(diǎn)A的參數(shù)值含義解釋如下:在產(chǎn)生式p3中,新產(chǎn)生的休眠芽B()中的兩個(gè)參數(shù)都設(shè)置成樹木在發(fā)芽時(shí)的年齡(用迭代步驟表示)。產(chǎn)生式p9更新B()中的第一個(gè)參數(shù)m,讓它總是表示樹木的實(shí)際年齡,而第二個(gè)參數(shù)n保持不變。這樣,對(duì)于產(chǎn)生式p8中新產(chǎn)生的頂點(diǎn)A,就可以將其年齡表示為m和n的線性組合(am+bn+d)。因?yàn)楫a(chǎn)生式p2對(duì)年齡較小的頂點(diǎn)(即k值較小的A(k))應(yīng)用的概率大,所以,通過(guò)不同的a、b、d值就能控制由休眠芽發(fā)育成的樹枝的平均分叉率。這是該模型一個(gè)很重要的特性,因?yàn)樽匀唤缰?,剪枝后新長(zhǎng)出的樹枝會(huì)比原來(lái)樹枝有更強(qiáng)的生命力。
圖4表示L-system 3運(yùn)行第3、6、9、13、21、27、32、38、40步后的植物形態(tài)。產(chǎn)生式p8中使用的常量a、b、d分別為0、1、-5。從圖中可以看出相對(duì)于非剪枝的情況,樹枝的密度在立方體盒子邊界上逐漸增加,最終剪枝后的植物長(zhǎng)成了其包圍盒的形狀。
圖4 植物在立方形包圍盒剪枝下的生長(zhǎng)
如圖5,進(jìn)一步說(shuō)明了常量a、b、c的值對(duì)剪枝后植物形態(tài)的影響。所有的圖像都是迭代19步后生成。在最左邊的模型里,被激活頂點(diǎn)的初始年齡等于此時(shí)植物的實(shí)際年齡減去5(a=1,b=0,c=-5)。在中間的模型里,被激活頂點(diǎn)的初始年齡等于樹木產(chǎn)生該休眠芽時(shí)的年齡減去5(a=0,b=1,c=-5),而在最右邊的模型里,該值為1(a=0,b=0,c=1)。從圖中可以看出,分叉最多的是最右邊的模型。
圖5 被激活頂點(diǎn)的生理年齡對(duì)分枝結(jié)構(gòu)的影響
根據(jù)以上的植物剪枝模型,利用不同的剪枝函數(shù),可以人為地創(chuàng)建出許多不同的植物形態(tài)。
本文利用環(huán)境敏感的L-系統(tǒng)對(duì)植物在剪枝條件下的生長(zhǎng)過(guò)程進(jìn)行了建模和仿真。根據(jù)這種思想,可以模擬出植物剪枝前后的生長(zhǎng)結(jié)構(gòu),對(duì)植物生長(zhǎng)規(guī)律的研究有一定啟發(fā)。
需要說(shuō)明的是,本文僅實(shí)現(xiàn)了理想條件下植物剪枝后的生長(zhǎng)仿真,然而影響植物剪枝后生長(zhǎng)的因素有很多,因此,與植物受環(huán)境影響的實(shí)際生長(zhǎng)過(guò)程相比,還需要進(jìn)行很多研究工作。
[1]Guo Y,F(xiàn)ourcaud T,Jaeger M,et al.Plant growth and architectural modelling and its application[J].Annals of botany,2011,107:723-727.
[2]Prusinkiewicz P,James M,Mech R.Synthetic topiary[C]// Proceedings of SIGGRAPH’94.New York:ACM,1994:351-358.
[3]陳濤.基于環(huán)境敏感的虛擬植物建模[J].西北師范大學(xué)學(xué)報(bào):自然科學(xué)版,2010,46(4):50-52.
[4]黃艷峰,陳濤.基于局部環(huán)境敏感的動(dòng)態(tài)植物建模研究[J].工程圖學(xué)學(xué)報(bào),2010(4):56-61.
[5]丁歡,萬(wàn)旺根,黃炳,等.三維嵌套L系統(tǒng)及其在植物模擬中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(5):207-209.
[6]唐衛(wèi)東,李萍萍,陸章平.基于Open-L系統(tǒng)的植物結(jié)構(gòu)功能模型研究[J].計(jì)算機(jī)應(yīng)用研究,2007,24(3):94-96.
[7]Mech R.CPFG Version 4.0 user’s manual[EB/OL].(2004)[2011]. http://algorithmicbotany.org/lstudio/CPFGman.pdf.
[8]Lam Z,King S A,Allied Press Ltd,et al.Simulating tree growth basedoninternalandenvironmentalfactors[J].Association for Computing Machinery,2005(2):99-107.
WANG Dong1,XIAYi2,YIN Muyi1,LIU Fulin1,ZHANG Ling1,CHEN Yulin1
1.Department of UAV,Wuhan Ordnance Noncommissioned Officer Academy,Wuhan 430075,China
2.Department of Teaching Affairs,Chongqing Aerospace Polytechnic College,Chongqing 400021,China
Simulation on local environment factors to the growth of plant,especially pruning is important to the research of the digital agriculture and virtual gardening.Although a two-dimensional tree model constructed by environmentally sensitive L-system is used to simulate its growth under 2D clipping box,real plant development process response to pruning is lacking.By combining it with a real plant development process model,a model of trees response to pruning is proposed.The experiments show that environmentally-sensitive extension of L-systems can make a better simulation on the interaction between a developing plant and its bounding box,and build a base for next step of research.
virtual plant;L-system;environment;growth model
仿真局部環(huán)境對(duì)植物生長(zhǎng)的影響,特別是在剪枝條件下的植物生長(zhǎng)狀況,對(duì)數(shù)字農(nóng)業(yè)的發(fā)展和虛擬園藝設(shè)計(jì)具有重要意義。已有的成果運(yùn)用環(huán)境敏感L系統(tǒng)實(shí)現(xiàn)了二維植物在正方形邊界內(nèi)的剪枝生長(zhǎng)仿真,但未能模擬真實(shí)植物生長(zhǎng)受環(huán)境的影響。在此基礎(chǔ)上,運(yùn)用三維植物生長(zhǎng)模型,實(shí)現(xiàn)了三維植物在剪枝條件下的生長(zhǎng)過(guò)程仿真。實(shí)驗(yàn)結(jié)果表明,環(huán)境敏感L系統(tǒng)能夠很好地模擬真實(shí)植物和外部包圍盒之間的交互,為下一步研究植物同其他外界環(huán)境因素的交互打下了基礎(chǔ)。
虛擬植物;L系統(tǒng);環(huán)境;生長(zhǎng)模型
A
TP391
10.3778/j.issn.1002-8331.1112-0541
WANG Dong,XIA Yi,YIN Muyi,et al.Simulation of virtual plant development based on environment sensitivity.Computer Engineering and Applications,2013,49(19):173-176.
武漢軍械士官學(xué)校博士創(chuàng)新基金。
王冬(1981—),男,博士,講師,主要研究領(lǐng)域?yàn)橛?jì)算機(jī)圖形學(xué),虛擬現(xiàn)實(shí)技術(shù)等;夏乙(1984—),女,講師,主要研究領(lǐng)域?yàn)闄C(jī)械設(shè)計(jì),信號(hào)處理等。E-mail:wangdongxy@hotmail.com
2012-01-04
2012-04-19
1002-8331(2013)19-0173-04
CNKI出版日期:2012-05-21http://www.cnki.net/kcms/detail/11.2127.TP.20120521.1139.015.html