基于环境敏感的虚拟植物生长仿真

2013-07-19 08:44王冬夏乙殷木一刘富林张凌陈玉林
计算机工程与应用 2013年19期
关键词:嫩枝剪枝顶点

王冬,夏乙,殷木一,刘富林,张凌,陈玉林

1.武汉军械士官学校无人机系,武汉 430075

2.重庆航天职业技术学院教务处,重庆 400021

基于环境敏感的虚拟植物生长仿真

王冬1,夏乙2,殷木一1,刘富林1,张凌1,陈玉林1

1.武汉军械士官学校无人机系,武汉 430075

2.重庆航天职业技术学院教务处,重庆 400021

1 引言

1968年,Aristid Lindenmayer引入了一种形式化的方法来对简单多细胞组织(如水藻等)的生长过程进行建模,后来被称为L系统。随后L系统数学理论的大发展,促使了其在植物建模领域的应用[1]。

在最初的L系统理论中,植物被看成是一种封闭的控制系统。这种假设的好处是使得植物的某些生长过程可以用数学方式来表达。然而,脱离环境的研究却大大降低了这种理论的应用范围和价值,因为它仅对植物形态进行模拟,无法反映植物的生长机理。

为了模拟植物受某些局部环境的影响,如剪枝后的生长情况,Prusinkiewicz[2]引入了环境敏感的L系统,将植物生长的外界环境因素和可交互的内部控制结合在一起,模拟植物的剪枝生长。文献[3]在L系统中引入向上传递的资源流和向下传递的节点数,模拟双向的信息流在植物体内的传递过程,实现了植物中某一分枝被裁剪后,其他分枝加速生长现象的仿真。黄艳峰等[4]给出了示意性的二维植物在正方形边界范围内的剪枝生长,然而没有进一步讨论三维植物在剪枝条件下的生长情况,因此不够完善。

在这些相关研究工作的基础上,为了能更加真实地表现植物在剪枝条件下的生长过程,本文将环境敏感的L系统与三维植物生长模型相结合,在L-studio平台上实现了基于环境敏感的植物动态生长过程仿真,促进了L系统理论在模拟植物生长领域的应用和发展。

2 L系统基本原理

2.1 环境敏感L系统语法

环境敏感的L系统和带参数的语义相关随机L系统紧密相关,因此其产生式形式为:

id:lc<pred>rc:condà succ:prob

这里id表示产生式的标示符,lc、pred、rc分别表示左语义、直接前驱和右语义,cond表示条件,succ表示后继,prob为应用产生式的概率[5]。

L系统的核心思想是重写,即从公理ω开始,按照产生式规则,依次替换ω中的每个字符,得到新的字符串,再进一步对新字符串中每个字符进行替换,按照上述规则一直替换下去,直到满足终止条件。

2.2 L系统的龟形图解释

与在每一次迭代过程中产生式集的并行应用不同,字符串的图形解释是按从左到右的顺序进行的。L系统产生的字符串可以有多种几何图形解释,而应用最广泛的是龟形图解释。这些字符串中的符号被解释成在二维或三维空间中操纵Logo风格的乌龟进行机动的命令。二维空间中字符串的龟形图解释如图1所示。乌龟由它的状态来表示,包括在笛卡尔坐标系下的位置、朝向,以及各种属性如当前颜色和线宽等。乌龟在三维空间中的位置由矢量P定义,方向由矢量H、L、U定义。

图1 二维空间中字符串的龟形图解释

3 环境敏感的L系统建模

L系统的龟形图解释是用来对模型进行可视化的,并不涉及对L系统的操作。然而,当考虑到植物与环境因素互相影响时,比如与障碍物的碰撞,乌龟的位置和方向信息就显得很重要了。因此,在环境敏感的L系统里,对字符串进行几何解释过程中,根据龟形的位置和头方向给查询模块赋值[6]。查询模块的形式记做:X(x,y,z),这里的X=P,H,U,L。根据X的实际值,x,y,z的值代表位置或方向矢量。在二维情况下,忽略z坐标。

下面以一个简单的二维树木在剪枝条件下的生长为例,来说明在环境敏感L系统里,应用查询模块的方法。一般情况下,在树的生长过程中,顶芽具有顶端优势。顶端优势是指植物的顶芽在生长上占有优势,顶芽的存在控制侧芽的生长。因此,树木在生长过程中有很多侧芽处于休眠状态。剪枝算法就是一种抑制“顶端优势”的算法,通过将分枝系统中某些顶芽移除而将休眠芽激活,产生由外界环境调节的植物形态和结构。

下面的L系统表示在二维平面内,植物只有被剪枝以后,休眠芽才能被激活的一种极端情况。本文所有算法都在L-studio 4.0平台上实现[7]。

该模型使用了一个用户自定义的函数whenprune(x,y,z)= ((y<0)||(y>SIZE×2)||(x<-SIZE)||(x>SIZE)||(z<-SIZE)||(z>SIZE)),将植物的生长限定在正方形的裁剪盒内,生长序列如图2所示(顺序为从左至右,从上至下)。从图中可以看出顶芽被剪枝掉后,休眠芽得以开始生长。

图2 二维平面内的植物剪枝生长演示

4 随机植物生长模型

前文使用了一个示意型的分枝结构来说明树木对于裁剪的响应,为了产生实际树木剪枝后的效果,需要引入树木的生长模型。

一个独立树的生长可以看做是新的嫩枝不断的添加到原来树枝上的过程。Borchert和Slade,通过对三叶杨树的观察和测量,得出末端枝条数量呈指数规律增长[8]。在Borchert、Slade模型的基础上,本文使用一种适用于计算机仿真的模型。该模型基于以下符合植物学原理的假设。

(1)植物从年龄k=1开始生长,在初始条件下表示一个没有分叉的嫩枝(shoot)。

(2)在以后的生长中,新的嫩枝从位于上一年枝末端的芽开始生长,定义常量bmax为最大分叉率。

(3)所有的枝条,不论它们的位置和年龄都具有相同的长度l,因此形成了一个半球形的树冠。

(4)叶子生长在当年枝上,因此在树冠外围形成了半球层的叶子。定义常量σmin为每个嫩枝上暴露到阳光下的最小叶面积,目的是保证叶芽在阳光下正常生长。

根据以上假设,在k个生长年龄后,树冠的最大半径为Rk=lk,半球形树冠的表面积最大为Sk=2πRk2=2πl2κ2。定义第k+1年添加到树木上的枝条数量为Nk+1,这个数值一方面受第k年添加到树木上的枝条数量Nk乘以最大分叉率bmax的限制,另一方面受限于在保证树叶彼此不过分遮挡情况下可能产生的最大嫩枝数量νk+1=Sk+1σmin。因此,Nk+1的大小为:

假定每个嫩枝上暴露到阳光下的最小叶子面积远远小于树冠的面积,即σmin≪2πl2κ2。植物在刚开始生长阶段,新嫩枝不足以覆盖整个树冠(bmaxNk<νk+1),新嫩枝的数量将随树木年龄呈指数增加,即

由于树冠的面积只跟树木生长年龄的平方呈正比,这样在某个年龄t时,可能的新嫩枝数量将超过允许的充分暴露到阳光里的树枝数量,即bmaxNt≥νt。在以后的生长中,植物的分叉将受树冠面积的限制。k≥t时的平均分叉率bk为:

从上式可以看出,当植物的生长超过一定年限后,其枝条分叉的概率将逐渐减小。假设每个上一年枝只产生一个或两个新的嫩枝,那么产生两个新嫩枝的枝条占所有上一年枝的比例为:

其含义如下:树木的生长从节间F和顶点A(1)开始,顶点的参数表示迭代次数。产生式p1表示产生两个新的枝条,而产生式p2表示产生一个树枝和一个休眠芽B。它们发生的概率分别是p=min{1,(2k+1)/k2}和q=1-p。当k<3时,新嫩枝的数量呈指数增加,当k≥3时,树枝分叉的概率由公式(1)决定。图3表示应用上面的L系统分别迭代18次后产生的两个三维树木图像,这里FAI(φ)=90°,ALPHA(α)=32°,BEITA(β)=20°。

图3 使用L-system2生成的三维植物形态

5 三维植物剪枝模型

上面的L系统产生了包含很多休眠芽的植物结构,因此能像L-system1那样用来仿真植物的剪枝生长。将第2章和第3章的L系统模型相结合,得到下面的L系统模型。

首先公理Axiom定义了一个植物生长的立方体界限BOX和符号X。产生式p1表示将X替换为一段节间F,一个顶点A(1)和一个查询模块:P(x,y,z);产生式p2、p3与L-system 2中的产生式类似,表示植物的自由生长。产生式p4~p8类似于L-system 1中的p3~p7,具体如下:产生式p4表示顶点A超过了裁剪面后,将顶点和相应的节间F同时移除,并产生激活休眠芽的信号S。产生式p5-p7用来向下传递这种信号。当信号S到达休眠芽B时,产生式p8表示休眠芽被激活,生成一个包含节间F、顶点A()和查询模块的侧枝。

产生式p8中顶点A的参数值含义解释如下:在产生式p3中,新产生的休眠芽B()中的两个参数都设置成树木在发芽时的年龄(用迭代步骤表示)。产生式p9更新B()中的第一个参数m,让它总是表示树木的实际年龄,而第二个参数n保持不变。这样,对于产生式p8中新产生的顶点A,就可以将其年龄表示为m和n的线性组合(am+bn+d)。因为产生式p2对年龄较小的顶点(即k值较小的A(k))应用的概率大,所以,通过不同的a、b、d值就能控制由休眠芽发育成的树枝的平均分叉率。这是该模型一个很重要的特性,因为自然界中,剪枝后新长出的树枝会比原来树枝有更强的生命力。

图4表示L-system 3运行第3、6、9、13、21、27、32、38、40步后的植物形态。产生式p8中使用的常量a、b、d分别为0、1、-5。从图中可以看出相对于非剪枝的情况,树枝的密度在立方体盒子边界上逐渐增加,最终剪枝后的植物长成了其包围盒的形状。

图4 植物在立方形包围盒剪枝下的生长

如图5,进一步说明了常量a、b、c的值对剪枝后植物形态的影响。所有的图像都是迭代19步后生成。在最左边的模型里,被激活顶点的初始年龄等于此时植物的实际年龄减去5(a=1,b=0,c=-5)。在中间的模型里,被激活顶点的初始年龄等于树木产生该休眠芽时的年龄减去5(a=0,b=1,c=-5),而在最右边的模型里,该值为1(a=0,b=0,c=1)。从图中可以看出,分叉最多的是最右边的模型。

图5 被激活顶点的生理年龄对分枝结构的影响

根据以上的植物剪枝模型,利用不同的剪枝函数,可以人为地创建出许多不同的植物形态。

6 结束语

本文利用环境敏感的L-系统对植物在剪枝条件下的生长过程进行了建模和仿真。根据这种思想,可以模拟出植物剪枝前后的生长结构,对植物生长规律的研究有一定启发。

需要说明的是,本文仅实现了理想条件下植物剪枝后的生长仿真,然而影响植物剪枝后生长的因素有很多,因此,与植物受环境影响的实际生长过程相比,还需要进行很多研究工作。

[1]Guo Y,Fourcaud 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]陈涛.基于环境敏感的虚拟植物建模[J].西北师范大学学报:自然科学版,2010,46(4):50-52.

[4]黄艳峰,陈涛.基于局部环境敏感的动态植物建模研究[J].工程图学学报,2010(4):56-61.

[5]丁欢,万旺根,黄炳,等.三维嵌套L系统及其在植物模拟中的应用[J].计算机工程与应用,2009,45(5):207-209.

[6]唐卫东,李萍萍,陆章平.基于Open-L系统的植物结构功能模型研究[J].计算机应用研究,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

仿真局部环境对植物生长的影响,特别是在剪枝条件下的植物生长状况,对数字农业的发展和虚拟园艺设计具有重要意义。已有的成果运用环境敏感L系统实现了二维植物在正方形边界内的剪枝生长仿真,但未能模拟真实植物生长受环境的影响。在此基础上,运用三维植物生长模型,实现了三维植物在剪枝条件下的生长过程仿真。实验结果表明,环境敏感L系统能够很好地模拟真实植物和外部包围盒之间的交互,为下一步研究植物同其他外界环境因素的交互打下了基础。

虚拟植物;L系统;环境;生长模型

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.

武汉军械士官学校博士创新基金。

王冬(1981—),男,博士,讲师,主要研究领域为计算机图形学,虚拟现实技术等;夏乙(1984—),女,讲师,主要研究领域为机械设计,信号处理等。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

猜你喜欢
嫩枝剪枝顶点
人到晚年宜“剪枝”
早春的嫩枝
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
基于YOLOv4-Tiny模型剪枝算法
钻天柳嫩枝扦插苗生长特性研究及优良单株选择
关于顶点染色的一个猜想
美国红枫嫩枝扦插育苗技术
裂叶垂枝桦嫩枝扦插育苗技术
剪枝
一种面向不平衡数据分类的组合剪枝方法