基于分形L系统的树木建模方法研究

2017-08-08 06:27张权义
关键词:字符串白杨树分形

张权义

(山西农业大学 文理学院,山西 太谷 030801)



基于分形L系统的树木建模方法研究

张权义

(山西农业大学 文理学院,山西 太谷 030801)

[目的]虚拟树木是场景可视化的重要组成部分。为建立真实感的树木模型,本文提出了基于分形L系统的树木可视化方法,建立包含枝干,分叉角度等信息的树木拓扑结构模型。[方法]首先根据现实生活中树木的结构解析出分形L系统的生产式和初始串,产生字符串,然后使用MATLAB软件根据字符串中的字符解释成几何图形,实现对树木的建模。[结果]使用该方法逼真地模拟了白杨树的拓扑结构,并且该方法具有一定的可移植性。[结论]使用MATLAB软件基于分形L系统的树木建模方法具有一定的应用性和推广性。

树木建模; 分形L系统; MATLAB

树木是现实场景中常见的景物之一,所以在虚拟场景中常常需要将树木可视化,即树木建模是虚拟场景中不可或缺的一部分,同时也为园林设计提供一定的理论基础。由于自然界中许多植物的形状具有自相似特征,而分形也具有自相似性。因此,近年来分形理论在植物模拟领域得到了广泛的应用[1~6],已成为虚拟农业研究的重要组成部分。

L系统是分形理论的一个重要分支,由美国生物学家LindenMayer在19世纪70年代提出,广泛应用于模拟植物生长过程的研究中。该系统借助计算机生成许多具有无穷细节、有规则的分形图形,特别是在树木形态模拟方面,分形L系统可以有效地描述树木的生长和拓扑结构,并能很好地表达植物的结构特征,具有高度简洁性和多级结构的特点。

近年来,相关学者开始关注分形L系统并对其做各种改进[7~13],分形L系统已成为研究植物可视化的一种主要方法。Kunii和Aono[14]将分形L系统应用于树形植物的模拟;胡秀珍等[15]用参数L系统将梨树枝干模型可视化;刘阁等[16]讨论了开心形苹果树枝干模型;Mitch等[17]使用L系统对桃树枝进行了建模。但这些学者是借助OpenGL图形库来绘制的,虽然OpenGL具有强大的图形渲染功能,但保存步骤繁琐。

MATLAB语法结构简单,具有高质量的可视化效果与强大的界面设计能力,在图形图像处理方面具有其他语言无法比拟的优势,已成为国内外处理图形图像最广泛的软件之一,本文使用MATLAB2012a对白杨树进行分形L系统的树木建模。

1 抽象树木模型

L系统认为每棵树木都是由一系列离散的组件组成,为了研究树木的结构以及树干与树枝之间的拓扑结构,对树木抽象建模——建立轴型树[13],如图1所示。

图1 抽象树模型Fig.1 Abstract Tree Model

在轴型树中,树木从根节点开始。从树木的根节点到树木顶端分为直枝和侧枝。直枝是树木的主干,称为树干;侧枝是其分支,称为树枝。树木的轴型模型有利于分析树木枝干之间的拓扑结构,同时为树木建模提供一定的理论基础。

2 分形L系统

确定型L系统为一个三元组,其中V表示系统字母表,V*表示V上所有单词的集合,ω∈V*是一个非空单词,称作公理,P⊂V*,V*是生产式,或生成规则的有限集。生产式(a,x)∈P写作a→x,字母a和单词x分别称为生产式的前驱和后继。若对于任意字母a∈V,至少存在一个单词x∈V*,使得a→x,如果给定的前驱a∈V无显示说明的生产式,则规定自反规则a→a属于生产式集合P。对于每个a∈V,当且仅当唯一的x∈V*使得a→x,则说明L系统是确定的[18]。

L系统是一种符号重写系统,其本质是字符串的替换,替换原理基本如下:

b→a,a→ab。

则演绎变化规律为:

b→a→ab→aba→abaab→abaababa……

替换规则产生一系列字符串。具体步骤描述如下:

第一步,生成字符串:

(1)声明并设置生产式规则;

(2)声明并设置起始点、初始角、迭代步长以及迭代上限等控制参数;

(3)循环用字符串替换种子。

第二步,读取字符串:按照“龟标记的字符串图形解释[18]”方法执行不同的动作:

(1)依次读取字符串中的每个字符;

(2)根据读取的字符解释为几何语言,例如读取‘F’时画树枝线段,读取‘h’时画树杆线段,读取‘+’时,逆时针旋转θ角度,读取‘-’顺时针旋转θ角度,读取‘[’时进栈,记录当前状态。读取‘]’时,出栈。

3 树木建模方法

对于一株给定的树木,其几何形状主要由树干和树枝组成,而树干与树枝存在自相似性。因此,采用L系统对一棵树木建模,首先应根据现实场景中树木的形态结构找出分形L系统的生产式和初始串。根据初始串与生产式迭代产生字符串。最终根据字符串生成树木图形。

3.1 算法设计

(1)数据初始化,初始化树干与树枝的夹角,树枝的生长比例系数。

(2)判断循环结束条件是否成立,若不成立,进入下一步;若成立,循环结束。

(3)根据字符串中的字符,计算新枝点的坐标,设原枝点的状态为(x,y,α),向前移动一个步长s,旋转角度为δ,则新枝点的状态变为(x′,y′,α′),其中x′=x+s·cos(δ),y′=y+s·sin(δ),α′=α±δ。

(4)画出原枝点与新枝点间的线段。

(5)将新枝作为母枝,并返回到(2)。

3.2 算法流程图

算法流程如图2所示。

图2 流程图Fig.2 Flow chart

3.3 模型结果与应用

北方白杨树在防风固沙,保持水土以及美化环境等方面起着重要作用。因此在虚拟场景中常常需要对白杨树进行可视化。通过分析白杨树的形态,提取白杨树枝干的特征信息,结合李姝敏[19]的描述,可将白杨树形态特征总结如下:

(1)白杨树树干

作为整棵树的重要组成部分,相对于侧枝,树干具有直而粗的特点,树干随着树龄的增加而逐渐增粗,一般直径为10~100cm之间,高度为2~17m。

(2)白杨树侧枝

树冠盖主要由侧枝构成,根据侧枝生长的位置,可归纳为两种:一种是生长在树干较低的位置,易被人工修剪,相对树龄较长,侧枝较大,在末端生长出更多细小的分枝。另一种是生长在树干较高的位置,属于新生枝,侧枝较小。

本文将分形L系统应用于北方白杨树的建模,根据观测现实场景中年幼的白杨树树干、树枝以及分叉角度等数据,拟合到分形L系统中,得出白杨树的分形L系统生产式为:

′h[-F][+F]h[-F][+F]hF′

(1)

′hh′

(2)

其中,h代表树干的生长,F代表树枝的生长。模拟结果如图3和图4所示。

图3 n=5的白杨树Fig.3 Aspen tree of n=5

图4 n=6的白杨树Fig.4 Aspen tree of n=6

图3和图4为使用MATLAB软件在迭代次数分别为n=5和n=6时的白杨树模型,该树较低矮,不符合生活中白杨树的特征,因此把分形L系统的生产式作进一步修改,将树木的树干顶端部分生长加倍。改进后的分形L系统的生产式为:

′h[-F][+F]h[-F][+F]hhF′

(3)

其中h代表树干的生长,F代表树枝的生长,分枝角度θ为15°,结果如图5和图6所示。

图5和图6分别为迭代次数n=5和n=6时改进的白杨树模型,该树型显得比较高,向上生长,

图5 n=5的改进白杨树Fig.5 Mended aspen tree of n=5

图6 n=6的改进白杨树Fig.6 Mended aspen tree of n=6

符合现实生活中白杨树的特征,比改进前的白杨树模型更加逼真,实现了白杨树的可视化。该方法具有一定的应用性与推广性,可以用于构建其他类似树木的可视化模型。

4 结论与展望

在详细观测北方白杨树的形态结构以及查阅相关文献的基础上,提炼出白杨树的结构特征,并将其融入到分形L系统的生产式中,建立白杨树的生产式,然后应用MATLAB软件对白杨树的生产式规则进行解析,最终在计算机上模拟得到白杨树模型。通过模拟发现,使用MATLAB对分形L系统构建白杨树模型可以取得良好的可视化效果,为虚拟树木建模提供一定的理论基础。但该模型仍然有一定的不足,今后可以从以下两个方面做进一步完善:

(1)将二维平面的树木建模转变为三维空间中树木的建模。

(2)增加白杨树枝干粗度的信息,颜色的信息,以及树叶信息,使建立的树木模型更加形象逼真。

[1]石银涛,程效军,张鸿飞.基于参数L—系统的三维树木仿真[J]. 同济大学学报(自然科学版),2011,39(12):1871-1876.

[2]韩金姝.分形L系统及其在植物形态模拟中的应用[J]. 德州学院学报,2006,22(3):84-87.

[3]尤鸿霞.使用MATLAB实现随机分形树模拟[J]. 南通纺织职业技术学院学报(综合版),2010,10(4):18-20.

[4]张宝云,黄敏.一种新的分形树递归算法的研究[J]. 微计算机信息(管控一体化),2010,26(15):216-217,228.

[5]冯莉,王力.基于L—系统的三维分形植物的算法及实现[J]. 计算机仿真,2005,22(11):205-208.

[6]张树兵,王建中.基于L系统的植物建模方法改进[J]. 中国图像图形学报,2002,7(5):457-460.

[7]高扬,黎展荣,魏为,等.基于参数L系统的小叶榕树建模方法研究[J]. 计算机技术与发展,2016,26(7):156-159.

[8]廖桂平,李锦卫,欧忠斌,等.基于参数L—系统的油菜花朵与花序生长可视化研究[J]. 农业工程学报,2009,25(4):150-156.

[9]谭云兰,贾金原,张晨,等.3D树木建模技术研究进展[J]. 中国图象图形学报,2013,18(11):1520-1528.

[10]辛龙娇,徐立鸿,李大威,等.基于参数L—系统的温室番茄植株的三维重建[J]. 现代农业科技,2014(3):340-343.

[11]吴瑞娇,陈崇成,马亨冰,等.基于形态特征的芒果树L系统建模及其可视化[J]. 系统仿真学报,2008,20(S1):344-347,351.

[12]张权义,周敏,郑红婵.对复平面上Julia集的控制与同步[J].纺织高校基础科学学报,2014,27(3): 342-346.

[13]孔令麒,黎展荣,韦婷,等.基于L系统的树木建模与仿真[J]. 科学技术与工程,2013,13(32):9536-9540,9548.

[14]AonoM,KuniiTL.BotanicalTreeImageGeneration[J].IEEEComputerGraphicsandApplications, 1984,4(5):10-34.

[15]胡秀珍,张建,李淼,等.基于参数L系统的梨树枝干模型三维可视化[J]. 计算机系统应用,2011,20(8):86-90.

[16]刘阁,周国民,胡林.基于L系统的开心形苹果树枝干模型[J]. 安徽农业科学,2009,37(16):7795-7796,7804.

[17]AllenMT,PrusinkiewiczP,DejongTM.UsingL-systemsformodelingsource-sinkinteractions,architectureandphysiologyofgrowingtrees:theL-PEACHmodel.[J].NewPhytologist, 2005, 166(3):869-880.

[18]朱华,姬翠翠.分形理论及其应用[M].北京:科学出版社,2011:54-79.

[19]李姝敏.常微分方程描述白杨树成长的过程[J].黑龙江科技信息,2016(32):150.

(编辑:李晓斌)

Modeling method of trees based on fractal L system

Zhang Quanyi

(CollegeofArtsandSciences,ShanxiAgriculturalUniversity,Taigu030801,China)

[Objective]Virtual tree plays an important role in the scene visualization. To establish a realistic tree topology models, a tree visualization method based on fractal L system was proposed in this paper, which contained the information of branches and bifurcation angle of the trees.[Methods]First, find the production of fractal L system and initial character string according to the tree structure in real life and produced character string. Second, used the MATLAB software to interpret the character according to the character string to establish geometric of the trees.[Results]Thismethod was used to vividly simulate the topology of the aspen tree and this method had certain portability.[Conclusion]The method of establishing tree modeling based on fractal L system using MATLAB software had certain application and popularization.

Tree Modeling, Fractal L System, MATLAB

2017-04-20

2017-05-20

张权义(1987-),男(汉),山西阳曲人,助教,硕士,研究方向:计算机辅助几何设计

山西农业大学青年科技创新基金资助项目(2016018)

TP391.9

A

1671-8151(2017)08-0605-04

猜你喜欢
字符串白杨树分形
白杨树染绿了夏天
基于文本挖掘的语词典研究
感受分形
分形之美
会唱歌的树
分形——2018芳草地艺术节
分形空间上广义凸函数的新Simpson型不等式及应用
校园里的白杨树
一种新的基于对称性的字符串相似性处理算法
高效的top-k相似字符串查询算法