




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南开大学 毕 业 设 计 中文题目: 基于L-system的植物模拟仿真英文题目: Simulation of plants Based on L-system 学生姓名 系 别 计算机科学与信息工程系 专业班级 指导教师 成绩评定 目 录1 绪论51.1 开发背景51.2 开发目的及意义71.3 主要研究内容及设计思路81.4 论文结构安排82 系统总体说明102.1 使用环境102.1.1 硬件配置要求102.1.2 软件配置要求102.2 系统主要功能102.3 系统主要特点103 开发环境与相关技术123.1 开发环境123.2 开发工具123.3 设计方法与技术123.3.1 设计方
2、法123.3.2 设计技术134 仿真设计要点184.1 仿真总体设计184.1.1 仿真采用模式184.1.2 仿真采用结构184.1.3 仿真整体功能介绍184.2 L文法设计184.2.1 分解194.2.2 同态204.3 视图颜色设计技术224.4 植物外形设计224.4.1 叶子设计224.4.2 花瓣设计234.5 植物生长函数设计244.6 植物生长效果255 分析与结论275.1 创新点275.2 存在的问题275.3 经验和体会275.4 展望27参考文献28致谢29附录1:相关英文文献30附录2:英文文献中文译文38摘 要自然界普遍存在着不规则且复杂的现象。而分形则是探讨
3、自然界的复杂事物的客观规律及其内在联系的需要。本文从分形学以及分形思想着手并以此引申出L-system作为它的一个典型实例,对L-system基本原理和形式化描述做了细致的表述。文章结合分形思想和L-system的形式化描述,着重对仿真的模型进行设计,给出了L-system的文法设计流程图。并且在分解过程中对植物器官进行改写并将结果保留在串中,在同态过程中根据匹配的改写规则模拟解释相应的植物外形,从而实现了重点设计有别的分解技术与时间上先后,空间上并行同态技术。紧接着对视图文件相应数据初始化和对植物外形进行相应的设计并对植物叶子生长函数、花瓣尺寸等十个生长函数进行设计和调整。这样模型得以建立,
4、针对该模型当改变部分参数是,仿真出不同的植物模型。得到了一种模型多种仿真的目的。关键词: 分形;L系统;植物仿真ABSTRACTThere are many irregular and complex phenomena in nature generally. And The Fractal is the need that is to explain natural objective laws of complex things and inner association. This paper starts with The Fractal and its ideology and e
5、xplain the production of these and how they have a great impact the real world.Finally, the article combines fractal ideas with the formal description of L-system, focuses on designing the simulated model and gives a grammar flow chart of L-system. Moreover, it adapted plant organ and remained the r
6、esults in the string during the process of decomposition. Also, it simulatedly explained corresponding plants shape so that it realized the homomorphism technology of focused on the design of decomposition and had time and space parallel. Then we initialized the corresponding data of viewing files,
7、made corresponding designs on plants shape, designed and adjusted growth function of plant leaves and petals and other 10 sized growth function. This model could be established and when it changes some parameters, it will simulates defferent plants models. A purpose of multi-simulated model is reach
8、ed.Key words: Fractal;L-system;Plants of simulation基于L-system的植物模拟仿真(天津农学院 计算机科学与信息工程系)1 绪论伴随着计算机的发展和普及,计算机的用途也逐渐由纯粹的计算向其他用途发展。越来越多的计算机被用于游戏,网络,虚拟现实等对界面,视觉比较高的应用中。随着各种复杂界面的设计,GUI也被广泛的应用。因而催化了计算机科学的另外的一门重要的技术仿真。仿真是近来计算机世界的热点之一,在社会生活的许多方面有着非常美好的发展前景,更是数字全球概念提出的依据和基础技术。仿真可以用计算机模拟的三维环境,是一种可以创建和体验虚拟世界(Vi
9、rtual World)的计算机系统Error! Reference source not found.。它的发展前景十分诱人,而与网络通信特性的结合,更是人们所梦寐以求的。在某种意义上说它将改变人们的思维方式,甚至会改变人们对世界、自己、空间和时间的看法。因而它是一项具有深远意义的和潜在应用价值的新技术。1.1 开发背景自上世纪60年代以来,对于植物仿真方面的研究取得了很大的发展,这也引起众多学者的研究兴趣。Oppnheimer提出了Error! Reference source not found.基于分形的植物的实时动画制作方法。植物的生长由一些基本参数控制、这些参数包括子树枝与母树枝的
10、夹角,子树枝相对母树枝长度的收缩比例,子树枝相对母树枝的旋转角以及母树枝上生长的子树枝的树木。然后根据这些参数递归地生成新的字树枝,同时在植物的每一生长新的字树枝的节点处对树枝生长参数进行随机扰动、使生成的植物更真实,使它具有统计自相似的特点而不至于显得过分规则。Barnaley提出了IFS(Iteration Function System)系统。IFS是一套在理论上非常完美的系统,在植物的生成中,采用大量的空间点表示植物的形状,因此对生成植物的处理带来一定的难度。IFS由一组仿射变换组成,通过对这些仿射变换的重复叠代生成复杂的分形图,包括用IFS生成植物的形状。用IFS制作分形图的过程如下
11、:1、确定IFS码。IFS码由一组压缩仿射变换组成。压缩仿射变换根据模拟物体的大致形状确定。2、由IFS生成它的吸引子。输入一初始出发点,每次随机选择一个压缩仿射变换对该点进行仿射变换,获得新的位置,然后递归地进行上述操作,最后由所有这些点组成的图即是IFS生成的吸引子。3、进行测度处理。主要用来找到IFS的不变测度,即是求IFS生成的吸引子中各点的灰度值。随后,LintermannError! Reference source not found.提出了对植物三维结构建模的真实感交互设计方法,他们采用一系列包含几何形状信息和植物结构体系的组件组成,并用可视化的图表表示,植物的空间结构和形状信
12、息由这些组件通过层次关系进行组织和管理。提供了三种类型的组件:几何体组件、组织组件和集合变换组件。1968年,美国的生物学家Aristid Lindermayer提出了Lindermayer SystemError! Reference source not found.,简称L-system,它是用于描述植物生长的数学模型,其基本思想可解释为理想化的树木生长过程,从一条树枝开始,发出新的芽枝,而发过芽枝的枝干又都发新芽枝最后长出叶子。其中,除了最终叶子的生成,各步骤实质上是一致的。实质上这就是分形思想的源泉。分形(fractal)Error! Reference source not fou
13、nd.指的是数学上的一类几何形体,在任意尺度上都具有复杂并且精细的结构。一般来说分形几何体都是自相似的,即图形的每一个局部都可以被看作是整体图形的一个缩小的复本。从理论上来说,无限递归的结果是形成了一个有限的区域,而该区域的周长却是无限的,并且具有无限数量的顶点。这样的曲线在数学上是不可微的。分形学核心思想是物体形状整体和局部的自相似性。这个概念与自然界大量不规则事物的形状特征是吻合的,因此分形几何适合于描述自然界中的不规则物体。植物作为自然界中最常见的景观之一,其复杂形状也适合用分形理论进行模拟。而L-system作为分形理论的一个典型实例是由生物学家A Lindenmayer从植物学观点出
14、发,于1986年提出的一套用以描述树木的系统。此后,国内外许多学者都对其进行扩充和改进,并引入计算机图形学,形成了L-system的许多变体,如随机L-system、开放L-system,参数L-system等。L系统可无限嵌套,具有高度简洁性和多级结构,为描述植物树木生长和增殖过程的形态和结构特征,提供了行之有效的理论和方法,已经成为植物可视化建模的主流方法。L-system又称为字符串替换法,这种方法的理论根据:一是利用分形可以由简单的图(生成元)迭代产生这一基本原理,因此可以用字符串表示生成元的构成(如组成的线段数,转动的角度等),再把字符串迭代就能生成希望得到的分形图;二是由于生物体是
15、并行方式下生成的(所谓的并行方式,就是几个部分同时生长),因此并行性应是植物仿真与模拟过程中的一个基本原则。目前,在国际上,加拿大Calgary大学计算机系的prusinkiewicz在L系统应用于虚拟植物的研究方面做出了重要贡献。在国内,数字媒体技术产业具有巨大的市场空间与成长机会。国家大力推动了数字媒体相关研究项目。在这种背景下,势必吸引更多的科研单位、学者等研究兴趣。尤其是国家大力推动三农建设,对农业生产和生态环境的传统观念建设起到重要的作用。反过来,促进L系统的不断发展,也将对植物生长形态仿真的日趋完善。与国内其他学者研究的苹果、玉米等特定植物相比,本课题更加注重研究植物的广泛性,也更
16、能突出植物模拟的特性。1.2 开发目的及意义那么,仿真又有怎样的现实意义呢?当前,随着社会的进步,人们对物质生活的需求越来越强烈,迫使人们不断的寻求新思路、新方法来解释和满足当前的需要。而仿真则是解决这一问题的最好方式之一。在科学研究领域,科研人员常常局限于研究课题客观自然规律,而浪费了大量时间。有了仿真,这样就极大的提高了科学研究的效率;在三维世界中,有了仿真,人们能够更多体验感官功能的冲击力;在农业生产研究中,有了仿真,科研人员便不在拘泥于季节的变化对生物形态的影响。通过开发一个L-system的植物仿真对植物生长进行科学研究。这是近年来农业科学研究的新趋势,这样突破了传统的植物生长受季节
17、时间的限制,在短时间内可多次对相同的不同的植物进行模拟仿真。这也是几乎所有的预测控制系统高品质控制都离不开系统仿真的研究。通过仿真研究可以对照比较各种方案,优化并达到理想中的结果,通过L文法中的分解和同态过程,最终达到理想的结果。基于L-system的植物仿真是鉴于植物生长的多变和不可预测性。对当前导致植物生长变动等信息进行收集、对未来植物生长走势进行初步分析。利用现有的情况信息做出最优预测,帮助国家相关部门对植物生长进行宏观控制,为其决策提供有效的支持;广大的商家与农业生产者可以提前了解市场情况对销售策略进行调整;政府有关部门了解植物生长的一般趋势;是具有实际意义的。通过开发一个L-syst
18、em的植物仿真对植物生长进行科学研究。近年来,几乎所有的预测控制系统的高品质控制都离不开系统仿真研究。通过仿真研究可以对照比较各种方案,优化并确定最终结果,对价格进行预测仿真首先应建立系统模型,然后依据模型编制仿真程序,充分利用计算机对其进行动态模拟并显示结果。1.3 主要研究内容及设计思路本文旨在利用L-studio来使用L-system和创建模拟模型,进行虚拟实验并对现有的植物生长信息通过建立L系统中的仿真模型,利用仿真模型对植物生长进行预测及预警。研究主要内容之一:恰当理解分形学与L-system的关系。从万事万物的自相似性中提取的理念并将其实现,L-system可无限嵌套,具有高度简洁
19、性和多级结构,为描述植物树木生长和增殖过程的形态和结构特征,提供了行之有效的理论和方法,已经成为植物可视化建模的主流方法。L-system又称为字符串替换法,这种方法的理论根据:一是利用分形可以由简单的图(生成元)迭代产生这一基本原理,因此可以用字符串表示生成元的构成(如组成的线段数,转动的角度等),再把字符串迭代就能生成希望得到的分形图;二是由于生物体是并行方式下生成的(所谓的并行方式,就是几个部分同时生长),因此并行性应是植物仿真与模拟过程的一个基本原则。研究主要内容之二:合理利用L-system形式化语言仿真植物生长。其自然递归规则导致自相似性,也因此使得分形一类形式可以很容易的使用L-
20、system描述。植物模型和自然界的有机结构生成,非常相似并很容易被定义,因此通过增加递归的层数,可以缓慢生长并逐渐变得更复杂。L-system 语法与Chomsky语法非常相似,说到L-system通常指的是带参数的L-system,定义如下:GV,S,P,V:变量符号集合;S:常量符号集合;:初始状态串;P:产生式规则自初始状态开始迭代套入L-system的文法规则,和正则文法语言不同之处在于L-system在一次迭代中可同时套用许多不同的文法规则。研究主要内容之三:辅助功能的设计。对于一个植物仿真,L文法设计是核心,但是一个合格的植物仿真,还需要视图文件设计、动画参数设计、颜色设计、外形
21、设计、生长函数设计等功能加以辅助。例如在生长函数设计中,对于一个植物从无到有、从小到大,从花芽到花朵,从嫩叶到枯黄的老叶,都与生长两个字密切相关,我们需要对植物的整个生长区间做必要的规划。而这一切都和生长函数密不可分。通过逐步对L文法的认识,达到建立基于L-system的植物模拟仿真的要求,实现对植物生长整体情况或局部因素的初步仿真。1.4 论文结构安排全文通过五个方面介绍该系统的设计过程,安排如下:第一,介绍植物仿真的开发背景以及目的意义。第二,介绍仿真工具及其安装环境。第三,对植物仿真所用到的设计方法和技术进行阐述。第四,对植物仿真进行详细设计说明,提出设计中的要点。第五,对整个植物仿真进
22、行总结。1.5 小结本节内容主要讲述了对植物模拟仿真的背景、目的和意义、文章主要研究内容和设计思路等。是对使用L-system进行植物仿真的一个初步印象。2 系统总体说明设计一个系统首先要对其进行使用环境的配置,并且对系统功能的设计及系统特点的分析。2.1 使用环境2.1.1 硬件配置要求1、一台运行Windows 95/NT v.4 或更高版本的PC;2、强烈推荐一台至少64K色的显示适配器。为获得最佳效果,请使用真彩(24或32位);3、 OpenGL。这个图形库在Windows 95之后的所有版本中都有包含。如果你使用的是Windows 95的较早版本,需要从微软网站上下载此图形库。2.
23、1.2 软件配置要求操作系统:Windows (95,98,Me,NT4,2000,XP)操作系统。软件要求:L-studio 4.2.13。2.2 系统主要功能编写L文法进行植物仿真。2.3 系统主要特点便于对L-studio工具的可视化操作;易于对仿真植物的外形、颜色、生长状态等参数的修改;可动态观察植物的生长趋势是系统的主要特点。如下Error! Reference source not found.所示:图 1:仿真的主要特点2.4 小结本小节阐述了植物模拟仿真所需要的工具(L-studio4.2.13)的使用环境,对工具运行的软硬件提出了要求;也对系统的主要功能和特点加以描述。3 开
24、发环境与相关技术本文的植物仿真是在windows操作系统和L-studio工具下完成的。3.1 开发环境此仿真是在Windows XP环境下使用L-system文法编写完成,并且要求计算机上装有L-studio 4.2.13版本。3.2 开发工具主要开发工具为:L-studio 4.2.13。3.3 设计方法与技术3.3.1 设计方法植物模拟仿真的是根据分形思想中无限自相似性演变为L系统。它具有无限嵌套,具有高度简洁性和多级结构,为描述植物树木生长和增殖过程的形态和结构特征,提供了行之有效的理论和方法,其仿真的一般过程如下Error! Reference source not found.所示
25、。图 2 L文法实现流程图3.3.2 设计技术3.3.2.1 L-system基本原理和形式化表述L-system实质上是一个重写系统,在绪论中我们已经对L-system作了简单的介绍。在这里再对L-system的基本原理作进一步的阐述,并引出L-system的形式化描述。许多分形集(或者说是他们的有限逼近)可以被看作简单元素(比如线段)的序列。但是线段的长度以及线段之间的夹角起着至关重要的作用。为了生成一个分形集,由L-system产生的符号串必须包含有关图形的必要的几何信息。Szilard和Quinton(1979)为了给出符号串的图形学解释而引入了Turtle的概念Error! Refe
26、rence source not found.。考虑二维平面中,一个Turtle解释被定义为如下的三元组,这里笛卡尔坐标(x,y)表示Turtle的位置,角表示Turtle的朝向。给定步长d与角增量r,Turtle就可以根据命令实现下列符号的含义。F(d):向前移动一步,步长为 d,Turtle到达状态,其中,图形解释是从(x,y)到(x,y)画一直线段;f(d):向前走一个步长d,但不画线;:向左转 角,Turtle下一状态为,规定正向角是逆时针方向; :向右转角,海龟下一状态为,规定负向角是顺时针方向;其中 d,是可以改变的参数。 为了形式化描述许多的分枝结构引入括号字符串结构,它们起着很
27、重要的作用。 利用 L系统的龟形解释模型,可以生成典型的分形图形。另外,Turtle不受其他符号支配。设表示一个串,是Turtle的初始态,d和是固定的参数,我们把Turtle根据串所走的轨迹(线段的组合),叫做的Turtle解释。有了这样严格的串到图形的对应方法后,我们就可以用这个方法来解释由L-system产生的串了Error! Reference source not found.。(见Error! Reference source not found.、Error! Reference source not found.)图 3 Turtle生长的方向图 4迭代生长此外,我们也可以把T
28、urtle解释推广到三维的情形Error! Reference source not found.,我们在空间用三个单位向量H、L、U分别表示Turtle的正方向、左方向及上方向,以此来确定Turtle的方位。这里H、L、U是两两垂直的,并且满足HxL=U。Turtle 只能绕它的头部、左部或着向上的向量旋转 (见Error! Reference source not found.):图 5在三维空间控制turtle+() 绕U轴向左旋转度;() 绕U轴向右旋转度;&() 绕L轴向下定位度;() 绕L轴向上定位度;() 绕H轴向左滚动度;/() 绕H轴向右滚动度;| 绕U轴旋转180,+(18
29、0) 和-(180)是相等的,并不滚动或定位turtle;v 绕H轴滚动,以便H和U在同一个垂直面内,而且U轴接近于H轴;R(hx, hy, hz,ux, ux, uz) 设置turtle头部为 (hx, hy, hz) (如果向量未规范化,程序会自动处理)。如果仅指定前三个参数,turtle 向上和向左向量会调整以极小化相对于先前定位的旋转否则,下面三个参数指定turtle向上向量(这个向量也不必规范化)。在这种情况下,左向量直接由指定的头和向上的向量来计算。令R为旋转矩阵,分枝生长方向的改变表示为H,L,U=H,L,UR,模块 v 和 R 相对于绝对坐标调整turtle方位 (和其它旋转相
30、比,相对当前turtle方位来完成)。如果未给符号+, -, &, , , 和 /指定参数,使用视图文件参数角度增量值。下面给出L-system的形式化描述,为了便于讨论,首先引入一些常用符号:1) 一个文法(Grammar)通常是指一个四元组:G=,R,S,其中S是开始符(表示生成语句时开始的符号);是全体终止符的有穷集合;是全体非终止符的有穷集合(包括S在内);R是全体形如的生成规则的有穷集合(其中是由V= 中的元素组成的字链,中至少有一个非终止符)。一个概率文法可以扩展为一个五元组G=,R,S ,P,此处P是产生规则的概率集,即令,则,其中是产生式的使用概率。2) V表示字母表,V表示全
31、体V中的元素组成的字链集合(包括空语句-链长为0的字链),又令(集合减集)。3) 如是一字链,则为将重复次而得到的字链。4) 为字链长中含的字符数。5) 表示能根据,由导出的符号如果=,=,而且又有生成规则。6) 表示存在一系列的字链,使=,=,而称为到的一个推导。7) 由生成的语言是由生成的全体语句的集合:且。易见,是由开始字符出发,根据推导出由终止符组成的字链的全体。一个字符串OL系统是一个有序的三元素集合,这里是一个非空单词,称作公理。是一个有限生成规则集,生成规则写作,字母a和单词分别称作生成规则的前驱和后继。规定对任何字母,至少存在一个非空单词,使得,若对给定的前驱无明确解释的生成规
32、则,则规定这个特殊的生成规则(a,a)属于R。如果对每个,当且仅当恰有一个非空单词,使得,那么就说OL系统是确定的,记为DOL系统。3.3.2.2 改变turtle 参数下列符号改变turtle 参数:“;(n)” 通过颜色增量增加当前颜色索引或材质索引值,或设置为n(如果未指定参数)。“,(n)” 通过颜色增量减少当前颜色索引或材质索引值,或设置为n(如果未指定参数)。“;(n)”通过颜色增量命令(视图文件下)的第二个参数增加表面背侧当前颜色索引或材质索引值,或设置为n(如果未指定参数)。仅在视图文件命令初始颜色有两个参数的情况下,表面可为每一侧指定不同的颜色或材质。“,(n)” 通过颜色增
33、量命令(视图文件下)的第二个参数减少表面背侧当前颜色索引或材质索引值,或设置为n(如果未指定参数)。“#(n)” 通过全局参数线宽增量增加当前行的宽度,或设置为n(如果未指定参数)。“!(n)” 通过全局参数线宽增量减少当前行的宽度,或设置为n(如果未指定参数)。“Tx(index)” 以索引index设置质地(质地次序的详细说明在视图文件下)。索引0切断质地。如果一个预定义的立方体表面在视图文件中关联了一个质地索引,那么这个质地就固定了,而且不可被模块Tx修改。“D(scale)” 设置当前tutle尺度为scale 。所有后来的几何体都由指定的值来尺度化。默认值可由视图文件命令初始化尺度来
34、设定。“Di(factor)” 通过尺度因子增加当前turtle尺度。如果未指定参数,使用视图文件命令尺度增加指定的默认值。“Dd(factor)” 通过尺度因子减少当前turtle尺度。如果未指定参数,使用视图文件命令尺度增加指定的默认值。3.3.2.3 有分枝的结构模型在L-system中,Turtle可以把字符串解释成首尾相接的线段序列。最终出现的曲线自交与否,取决于线段的长度及线段的夹角。这条曲线可能会或多或少地卷绕,其中的有些线段可能会出现多次而另一些线段也可能一次也不出现,但无论如何,它总归是一条曲线。Lindenmayer引入加括号的“串”概念来表示图形“树”,其动机是使用一般的
35、L-system框架来叙述植物的分枝结构,很自然地就引入了可以处理加括号的串的L-system。其几何解释可用来模拟计算生成的图形结构以及各种实际图像。加括号的串以及L-system的扩充Turtle可解释如下:首先我们引入两个可作用于Turtle的新符号:“”:把Turtle目前的状态推至一个下推堆栈。堆栈中存储的信息包含Turtle的方位以及所画线的颜色、宽度等其他参量。“”:从堆栈中抽取一个状态使之成为Turtle目前的状态。尽管一般来说Turtle的位置会变,但不画出任何线。如Error! Reference source not found.所示的是一个加括号串的例子及其Turtle
36、解释图 6 Turtle解释事例加括号的OL-system是从不加括号的OL-system演变过来的,括号被重写成他们自身。加括号的L-system常被用于生成分枝结构。Turtle行走的一个重要特征是其行走方向与目前的定位密切有关。但绝对方向在根系的生长过程中起着至关重要的作用。例如,分枝可能这边弯曲,也可能向那边弯曲。这些效果可以这样模拟,在每画一次线段后,沿着预先给定的向性向量T(Tropism-vertor)轻微地旋转Turtle。3.4 小结本小节内容主要讲述了仿真所需要的设计方法和技术。在设计方法中提到了在L-studio工具下仿真所需要的一般步骤;在设计技术中着重提及L-syst
37、em的形式化描述和改变turtle参数。最后讲述一个简单模型的制作过程。4 仿真设计要点4.1 仿真总体设计本系统采用L文法作为开发语言,联合使用视图文件、动画文件、颜色文件,外形设计文件、植物形状文件、功能函数文件、控制面板文件以及相关的描述文件。4.1.1 仿真采用模式在仿真中,采用模块化和集成化模式。也就是说对仿真的各个部分采用分开编写设计,而当集成时就将各个部分合在一起,以达到良好仿真的目的。4.1.2 仿真采用结构根据设计思想,可以得到仿真结构图,如Error! Reference source not found.。图 7 仿真结构图其中L文法模型库中式已经写好了的文法系统文件,当
38、工具箱调用模型库时,便绘出完美的植物图形。仿真的同时也是能够产生选择性的文件。4.1.3 仿真整体功能介绍通过编写L-system文法以及相应的功能函数等文件建立植物生长模型,能够对植物整个生长周期进行全方位的模拟和仿真。在短期内达到对植物多次生长观察以及不同的条件下植物生长的趋势不同等功能。达到计算机时代的高效性、可重复使用的特性。4.2 L文法设计L文法设计是整个仿真的核心,一个完整的文法实现的标准结构图,如Error! Reference source not found.所示:图 8 L文法主要组成部分在预定义部分我们看到大量参数的定义,紧接着就是对本模型中初始元的定义,即公理的开始。
39、Axiom:/(angle) &(5);(1) A(0) /*规定了初始元的所偏转的方向*/A(t) - A(t+dt) /* 顶端 */I(t) - I(t+dt) /* 在分枝下侧的枝条 */J(t) - J(t+dt) /* 支持分枝的的枝条 */L(t) - L(t+dt) /* 叶子 */K(t) - K(t+dt) /* 花蕾 - 花朵 - 花的果实 */B(dir,t) - B(dir, t+dt) /*分枝角度,dir是角度变量,dt是延迟变量 */上面的dt是迭代的一个变量,在仿真中表示时间,同时和迭代步数相关。时间长度在规定的步数内要达到生长所要达到的要求。4.2.1 分解
40、分解改写规则使得可把串中的一个模块分解为几个组件。L-system改写规则仅关注植物的主要生长块,如顶点、分裂组织或叶子。每个模拟步骤之后,在解释串之前(而且已经应用了一个可能的同态),描绘这些器官的模块可由几个其它模块取代,描绘部分器官。与同态改写规则不同的是,分解的结果仍然保留在串中。对于植物生长分解过程的L-system文法设计如下:decompositionA(t) : BR_PATTERN = 0 & t 0 - I(t) J(t) K(t) v B(1,t) v L(t) A(t-D1)v B(-1,t) v L(t) A(t-D2)A(t) : BR_PATTERN = 1 &
41、t 0 - I(t) J(t) K(t) (90) B(1,t) (90) L(t) A(t-D1) B(-1,t) / (90) L(t) A(t-D2)这是一个根据参数BR_PATTERN的值不同而分别进行不同处理的分解过程。当BR_PATTERN= =0时(预定义值也为0),符合第一个分解规则。那么将相应的参数值代入进去,并将结果保留在传中。为下面同态过程提供参数;当BR_PATTERN= =1时(预定义值也为0),符合第一个分解规则。那么将相应的参数值代入进去,并将结果保留在传中。为下面同态过程提供参数。注意:分解在L-system改写规则之后和同态改写规则之前。4.2.2 同态L-s
42、ystem同态被定义为一个仅应用于解释目的的改写规则集中。这允许模拟器改变外观的详细资料,而不用修改模型潜在的逻辑(L-system捕获的)。在 cpfg 中,L-system同态由放置在介于关键字同态和终端L-system之间的L-system末端的改写规则指明。在L-system产生串的解释期间,为串中的每个模块选择一个匹配的同态改写规则。然后匹配的同态改写规则的后继定义了模块的同态映像。 如果没有匹配的改写规则,这个模块的同态映像就是模块本身。带有参数或本地程序语句的改写规则操作类似于L-system改写规则,例如,模块参数的实际值会取代表达式中的形式参数值。在L文法中同态过程如Erro
43、r! Reference source not found.:图 9 L文法同态过程一个良好的同态过程,必然是对迭代的公理进行时间上先后,空间上并行。同态中的枝干生长的L文法如下:B(dir, t) - +(dir*ANG*func(BR_ANGLE,t/LENLEAF)这是对枝干角度的解释过程,在分解过程中有B(dir, t)解释串,这个解释串在这里要求此处枝条向U轴左旋转的角度根据参数和func(BR_ANGLE, t/LENLEAF)的函数值的乘积共同决定的。I(t) - #(0.01*(40+2*t)C(LEN1*S0*func(INT_GROWTH,t/LEN1)对分枝节点下侧的外观
44、的解释并改变外观的详细资料的过程,在这里显然关注的是枝条在生长过程中的截面直径(枝条的粗细)。J(t) - #(0.01*(40+1.2*t) C(LEN2*S0*func(INT_GROWTH,t/LEN2)在节点之上的分枝枝条,它是用来支持花朵的生长。在整个同态过程中的枝干中一些参数已在L文法中定义过或是来源于生长函数。同态中的叶子生长的L文法如下:L(t) : leaf_length = func(LEAF_GROWTH,t/LENLEAF); leaf_width = leaf_length2.0; leaf_height = leaf_length3.0; 1 - ;(64+floo
45、r(63*func(LEAF_COLOR,t/LENLEAF) &(90*func(LEAF_ANGLE, t/LENLEAF) l(leaf_width, leaf_length, leaf_height)这是对叶子外形的解释描述过程前面三个参数的值分别计算叶子长度、宽度和叶子的高度,后面的解释规则根据实际得到参数的多少进行不同的处理。当得到的参数只用一个,那么三个参数数值一致;当得到的参数为三时,他们指定缩放量为各自的值。同态中的花朵生长的L文法如下:R(t) : calyx_length = 10*func(CALYX_GROWTH, t/(T1+T2+T3+T4); 1 -;(32+f
46、loor(31*func(CALYX_COLOR,(t-(T1+T2+T3)/T4)!(NR_VERT) #(1) #(0.5*calyx_length*func(SEPAL_WIDTH, 0) Gs S(0,calyx_length) Ge(1) f(calyx_length) E(t)S(x_rel,x_max) : x_rel = x_rel + 1/NR_HORI; x_rel f(x_max/NR_HORI) #(0.25*x_max1.5*func(SEPAL_WIDTH, x_rel) Gc(1) S(x_rel, x_max)S(x_rel,x_max) : x_rel 1+0
47、.001 - *这是有关花萼的同态仿真过程。E(t) : tT1 & t ;(3) (petal_angle) p(0.5*petal_size2.0, petal_size, 0.5*petal_size2.0)当变量t大于T1小于T1+T2+T3,即前提条件是花苞已经长成小花朵而这个花朵还没有成熟的时候,计算出花瓣的角度和尺寸。E(t) : t = T1+T2+T3 stage = (t-(T1+T2+T3) / T4; petal_angle = 40*func(PETAL_ANGLE, stage); petal_size = 2*func(PETAL_SIZE, stage); -
48、;(63)(petal_angle)#(0.3)F(petal_size)这是计算花朵已经由果实期向成熟期转变,计算出花瓣的角度和尺寸,并且绘出相应的外观模型。4.3 视图颜色设计技术在文件plant.v的文件中有大量的与L文件和后面的绘图文件相关的数值(见Error! Reference source not found.)。表 1绘图文件设计相关的数值参数名值参数名值参数名值Angle factorViewpointTwistProjectionz buffer:cue range:render odeline style:contour:40 -1,0,300ParallelOn0Sha
49、dedCylinderSpeal.coninitial colorcolor ncrementfront distanceback distancescale factorSurface ambient:surface diffuse:surface:surface:721-.0.00.95.15.75p petal.s 2 6 6l leaf.s 6 6initial line widthline width incrementview reference point:light direction:diffuse reflection:tropism direction:initial e
50、lasticity:elasticity increment:function set0.200.020,0,01.0,1.5,0.500.0,1.0,0.00.050.0functions.fset4.4 植物外形设计根据参数 L-系统,植物花朵的拓扑结构和生长规律的模型表示最初花朵是由花枝和花蕾组成。当然最为主要的是把叶子和花瓣外形给设计好Error! Reference source not found.。4.4.1 叶子设计 在对植物的叶子设计中,需要对其外形进行细致的观察,以便对其更加细微的操作。在设计时很容易看见其三维效果图(见Error! Reference source not
51、 found.)。图 10 叶子设计图这是叶子绘制后相应的效果如Error! Reference source not found.所示:图 11 叶子效果图设计中指定叶子的表面,如图7-24所示。它由两个片组成,但是两片之间没有阴影的插补。4.4.2 花瓣设计图 12 花瓣设计图4.5 植物生长函数设计对植物的生长模拟的实际情况,采用应用尝试法寻找最佳拟合生长函数。为便于比较不同的情况处理后,应用尝试法 (try and error method)寻找最佳拟合生长函数。为便于比较不同品种的情况,采用(实测量一实测最小值)(实测最大值 一实测最小值)的归一化处理方法,归一化处理后就为成为一个0
52、1之间相对比值,为了使图显示清晰,将纵坐标扩展到 12,因此下图纵坐标为归一化比值。通过对多种拟合生长函数的比较,植物花轴节间长度和直径的生长函数 采用 Sigmoid 5参数函数拟合最好,花朵花柄的长度和直径的生长函数采用 Weibull 4参数函数拟合最好。下图表达了拟合生长曲线,点为经归一化处理后的植物试验观测数据,线为拟合曲线。在如Error! Reference source not found.所示的页面中,我们看见了叶子生长的过程,其随着年龄的增长生长趋势如下。图 13叶子生长走势图这个是植物叶子颜色的过度区间,我们看到在对归一化处理过程中,当叶子生命过了一半后便出现颜色过度变化
53、的过程。(见Error! Reference source not found.)图 14叶子颜色生长函数在这里我们仅仅选择了叶子生长函数(LEAF_GROWTH),叶子颜色生长函数(LEAF_COLOR)两种生长函数图例,还有顶端初始化生长函数(INT_GROWTH),分枝角度(BR_ANGLE),叶子角度(LEAF_ANGLE),宽度(SEPAL_WIDTH),CALYX_COLOR,CALYX_GROWTH,花瓣尺寸(PETAL_SIZE),花瓣角度(PETAL_ANGLE)等十个生长函数。4.6 植物生长效果一个完整的植物模型亮丽的展现在我们的面前。当我们为了得到不同的植物模型,需要改
54、变里面不同的参数。如下四图所示。 图 15茂盛生长 图 16一枝独秀 图 17径直而上 图 18朵朵争艳4.7 小结本节内容是全文的核心。阐述了怎样书写L文法,讲解了分解和同态两种功能点;并对视图文件、动画文件、颜色文件,外形设计文件、植物形状文件、功能函数文件、控制面板文件以及相关进行描述。5 分析与结论5.1 创新点相对于国内许多研究L-system的学者相比,本文最大的特点是将同一模型可以仿真出多种外形不同的植物来,从而达到了一种模型多种仿真的目的;对L文法的设计结合分解与同态,达到了同一部分分成不同组件,不同组件寻找各自匹配的改写规则;对生长函数的数据归一化处理便于在同态改写过程中得到最佳的数据也是本文的创新点之一。5.2 存在的问题此次仿真中还有一些不尽完善的地方。首先,对于植物仿真的背景颜色调试缺少应有的经验,对于植物体本身颜色选择欠缺经验。其次,没有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超高性能混凝土的创新研究与应用进展
- 虚拟仿真实验技术-第1篇-洞察及研究
- 公用物资使用管理办法
- 红心猕猴桃品质与环境因子关系研究
- 现代农业灌溉系统智能化管理规范研究
- 教师职业角色定位与专业发展路径探究
- 公共财物授权管理办法
- 固定资产管理系统设计:理论与实践
- 国际金融治理中的主权边界问题研究
- 生活艺术与创意表达
- 2024年质量工程师备考常见问答试题及答案
- 三通四通尺寸数据及标准表
- 2025-2030全球及中国管道运输服务行业市场现状供需分析及投资评估规划分析研究报告
- 安庆市桐城经开区建设投资集团有限公司招聘笔试题库2025
- JJF 2244-2025公共机构重点用能单位能源资源计量审查规范
- 警犬基地人员管理制度
- 2025年甘肃省建筑安全员B证(项目经理)考试题库
- ICU感控管理分析报告
- 垃圾分类创新创业项目
- 体育赛事中的后勤保障工作
- 建材家居业商业计划书
评论
0/150
提交评论