更全的杂志信息网

树随风动的仿真研究*

更新时间:2009-03-28

模拟自然景物已成为游戏开发,建筑,广告,虚拟现实,园林规划[1]的重要组成部分,而树木作为其中必不可少的重要景物,对其动态模拟成为众多学者竞相研究的热点.

为模拟树随风动的动态效果,本文首先在L系统原理基础上建立树的模型;然后在线性风场的基础上加入噪音函数,建立了风速数学模型;接着采用旋转角度法来模拟树枝受力弯曲运动;最后以VC++6.0和OpenGL为开发工具,实现了树随风动的模拟系统.

1 树建模方法

1.1 树结构建模

在当前成功用于建立树的三维模型的方法中,基于L系统的建模方法是最成熟的,具有定义简单,结构化程度高,易于实现的特点.

1.1.1 L系统基本原理

L系统[2]是1968年美国生物学家林德梅叶提出的,当时是为了模拟生物形态的需要;后来在1984年和1986年,分别由史密斯和普鲁辛凯维奇将它引入到计算机图形学领域.此后,它被用于模拟植物的叶子,植物的茸毛[3]及具体的植物如竹子[3-4]等.

L系统实质上是字符串重写系统[5].为了生成复杂物体,根据事先定义的生成规则集,生成较为复杂的物体去替代简单物体,如此不断重复迭代,最终生成形式为“F”“+”“-”等字符组成的字符串.

1.1.2 L系统的二维植物模型

树木的二维结构是通过L系统对字符串重写得到的.假定初始方向为竖直向上,步长为d,角度增量为σ.对L系统G定义如下:

(2)20%生石灰乳、l0%漂白粉液、1:l 000的强效消毒灵液等对圈舍外环境进行喷雾消毒2~3次。

G={V,W,P}V={F,+,-,[,]}WF[-F][+F]P={P1}P1FF[+F]F

(1)

其中,字符“F”为向当前方向移动步长d;“+”为从当前方向右转角度σ后,再作为新的当前方向;“-”为从当前方向左转角度σ后,再作为新的当前方向; “[”为当前信息入栈;“]”为栈顶信息出栈[7].由公式(1),可获得一次迭代的式子为:

F[-F][+F]→F[+F]F[-F[+F]F] [+F[+F]F]

(2)

通过这种方法,可以生成树木二维模型.然而自然界的物质神态万异,为使模拟更逼真自然,可采用引入随机数到系统的方法.

基于第二条基本原则,对所要教学的内容确定度量和度量单位的形式,如前所述,形式主要分为两类:一类是通过抽象得到的,是人思维的结果;一类是借助工具得到的,是人实践的结果.

1.1.3 L系统三维树木生成

利用空气动力学原理来计算风力,树运动中受到阻力Fd和动力Fl,通过公式(6)和公式(7)可以计算作用在树枝和树叶上的风力.

G={V,W,P}V={F,+,-,*,[,]}WF[-F]*[+F]P={P1}P1FF[+F]*F

(3)

根据材料力学原理,假定节点1固定,节点2和3处于中间,对于不同的树枝小段而言,作为固定点还是自由端都是相对的,考虑(1-2)小段树枝时,节点2是自由端,考虑(2-3)小段时,节点2就是固定点,节点3也是同样.如果树枝的3个小段是互相分离的,那么受力后各小段的弯曲情况就会如图6第二幅图所示;树枝各小段由节点相互连接,因此必须考虑节点间的相互关系,节点2受力后到达位置2′,把2′作为(2-3)小段的固定点来计算树枝的旋转角度.

WF[-F]*[+F]→F[+F]*F[-F[+F]*F]*[+F[+F]*F]

(4)

操作目的:根据L系统基本原理,生成树的静态模型.

1.2 获取树枝节点数据

要获取树枝节点数据,需要三步操作:

第一步:

为了使生成的树模型看起来更加逼真自然,“*”“+”和“-”旋转角度不能取恒定值,我们取一定范围内的随机值.

今年杂志6月刊,我们同事采访侍酒师大师戴亚伦Darius Allyn MS,文章《戴亚伦Darius:成为侍酒师大师要尝过多少支酒》在公众号推出后,250万瓶酒的数字让小伙伴们惊呆了,纷纷想要跟我们中国首位自己的侍酒师大师吕杨求证。

操作方法:递归迭代.

操作实现:选取一个树枝,对树枝进行分层,树干为第①层,中间树枝为第②层,末端树枝为第③层.树叶生长在末端树枝枝头.用带箭头的线段表示每段树枝及其生长方向,每段树枝间的连接点称为节点,用数字对节点按层顺序进行编号.根据L系统字符串重写原理,按照上述规则,从①层主干不断递归迭代至第③层末端枝头,就生成了树的静态模型.图1即是树模型的截面图.

  

1 树模型截面图

第二步:

近年来,尽管研究者们考察了同理心、社会支持、情绪表达和亲社会行为等与人际情绪管理相关的因素,但却忽略了情绪管理过程中社交因素的影响,忽略了人际间的深层互动对情绪调节的作用.人际情绪管理理论认为,情绪管理是社会情境下的自我管理,具有社交功能.这为明确情绪和焦虑性障碍提供了很好的解释框架[22].尽管如此,人际情绪管理研究仍然存在如下一些问题,有待进一步考察.

操作目的:存储树模型.

操作方法:使用双链表.

产房、保育及育肥前期是最需要保暖的地方,特别要注意猪舍温度的稳定,不能温差过大 (不超过5℃),造成仔猪应激,引起疾病。保育和产房要储备一定量的电热板和取暖灯,以防有损坏并能及时的补充上。育肥前期的猪只可铺垫草或垫板取暖。同时,应准备额外的例如燃油暖风机等临时加温机器,以备临时升温用。

操作实现:创建双链表,链表节点如图2所示,节点中共有5个成员,其中ID编号表示此节点在模型中是第几层,表示本节点与其他节点间链接关系的是父亲节点和孩子节点域,分别链接其前后树枝的节点.根据此方法即可将上述树模型存储至双向链表中,其结构图如图2所示.

  

2 树模型存储结构图

第三步:

同时,电商可以做到个性消费。供应商可以根据消费者的不同要求,一对一地量身订做个性化的产品。消费者可以真正参与到产品的设计、开发、生产等环节,使产品真正做到以消费者为中心,从各个方面满足消费者的个性需求,避免不必要的浪费。

操作目的:遍历每段树枝,获取节点数据.

操作方法:使用深度优先遍历方法.

操作实现:根据树模型存储结构图,节点1是树根,从它开始,首先从它的邻接链表中选择一个从未遍历过的节点2进行遍历,再从节点2的邻接链表中选择一个从未遍历过的节点4进行遍历(注意在遍历过程中需对已经遍历过的节点设置一个标记值予以区别,避免重复遍历),直到遍历到节点8和9,它们没有任何邻接的还未遍历的节点,于是返回,到上一层节点4按相同的方法继续搜索未遍历的节点,直至树模型中所有的节点都遍历到为止.

使用这样方法便可得到树枝节点的数据信息.

1.3 树枝模型

第二步:将树枝各小段连接起来,不再是分离个体,相互直接运动将受到影响.如图7,树枝(1-2-3-4)实际移动的最终位置应为(1-2′-3′-4′).从第一步,已经获得2′,m的位置值,从图看出,(2-2′-3′-p)四个节点构成了平行四边形,这样可计算出节点3′的位置.同样的方法可求得节点4′的位置.

获取到树枝节点数据后,接下来要建立树枝模型:取树枝上每两个相邻节点,一个节点作为圆柱体上表面中心点,另一个节点作为下表面中心点,绘制出树枝的圆柱体模型(图3(b)).每节树枝使用一段圆柱体来表示的.树枝模型就是用一系列相连的圆柱体集合来模拟的.

  

3(a) 树枝节点模型 3(b) 树枝圆柱模型

2 风场的数学模型

2.1 数学建模

由于风的大小具有不可预知和随机的特点,本文采用Perlin噪音技术来产生随机数[6],将它加入到线性风场来模拟风的这个特点,希望可以得到更接近自然界的风.由此建立的数学模型用下面的公式来描述:

V=V0×sin(ωt+β)+α×PerlinNoise(t)

(5)

其中, PerlinNoise(t)函数是关于Perlin噪音技术获取的噪音数据,V0,β,α,ω是为获取不同风场提供的可调参数.

为分析所建立的风场是否符合自然规律,我们对风场模型进行拟合,做出风速曲线图.图4所示是风速曲线图的一段截图.

  

4 风速曲线图

从图4可以看出,在参数V0=20,β=0,α=5,ω=3.14/200情况下能够得到类似自然风的效果的结论.风随着噪音扰动,随机发生变化,符合自然规律.

1.切实加强领导,建立健全学校德育工作领导责任制。学校要成立德育工作领导小组,校长任组长,分管领导任副组长,相关处室具体负责,班主任和科任教师具体实施,把德育工作摆在学校工作的首要位置,对德育教育的内容、方法和具体活动等详细设计,将道德教育落实到学校教育的各个环节。

2.2 风力计算

为了生成树的三维模型,新加入规则“*”到系统中,其含义从当前方向朝上旋转的角度.如此修改就可形成树的三维结构.此时,新的规则集可定义为:

 

(6)

 

(7)

公式中,参数ρa表示空气密度,V代表风速,CdCl分别表示阻力系数和动力系数,S表示迎风面积.

“群众路线”作为中国共产党根本的政治路线和组织路线,一直是国外媒体观察中国共产党执政方略的一个重要切入点,特别是自2013年下半年党的群众路线教育实践活动开展以来,国外媒体也把更多的目光投向了此次以“群众路线”为主题的党内教育实践活动。了解和掌握国外媒体观察党的群众路线活动的独特视角和主要观点,关注和梳理其最新的报道动态,对于拓宽研究视野,增进不同政治思维语境下的交流,进一步丰富和完善党的群众路线理论研究具有重要意义。

3 树枝运动分析

研究树的运动,关键就是研究树枝在力的作用下发生的弯曲运动[7].

3.1树枝运动求解

由材料力学的定义,长度远大于截面尺寸的构件就可视为杆件.因此,对于树枝,将其作为杆件分析其受力情况是合理的.如图5,将树枝的一端固定,另一端作为自由端.就可以使用材料力学中的公式(8)来计算树枝的运动位置.

  

5 杆受力发生弯曲

由于在树模型中不仅要考虑相邻节点,还要考虑到这些节点仅是圆柱体表面的中心点,还要考虑各表面的大小问题.根据自然界实际情况,一般地,树枝从根开始,越往上生长,其树枝半径越小,根半径是最大的.因此,求解时需要想办法使得树枝模型的生长规律具备这一特点.本文首先设定根半径的大小,然后将其缩小合适比例α[具体计算见公式(9)]后作为另一表面的半径.自然环境中树枝随风运动时离根端越近,弯曲角度越小,反之,离末端越近弯曲角度越大(图7).因此为实现更形象的模拟,设定F为根端受力,Fi为第i段树枝受力,其值随着i的增大而逐步增大.如公式(9)所示,其中是第i段树枝的平均半径.

 

(8)

本文绘制了树枝在受力后如何一步一步弯曲的示例图,如图6所示.模型中树枝有4个节点,包含3小段树枝.

  

6 树枝受力弯曲运动过程

修改后,规则集P的三维结构的一次推导为:

3.2 树枝运动模拟

首先,当树枝在受力F后发生弯曲,其弧度值δ可根据公式(8)计算获得,然后,再通过公式将其转化成旋转角度.这里将这种求解树枝旋转角度的方法称为旋转角度法,其中F表示树枝受到的力,L表示树枝长度,E表示弹性模量,R表示树枝半径.

 

(9)

  

7 计算树枝运动示意图

具体实现步骤为:

在语法方面,一些复杂的语法结构,长句子,与汉语表达不同的逻辑结构也会对听力理解造成干扰的作用。比如,在听力材料中出现的“He went to ask the woman standing there”,很多学生就会疑问该句子的意思到底是“He went to ask the woman who standing there”还是“He went to ask the woman to stand there”呢?复杂的句子结构导致理解句子的困难。由此可见,语言知识在听力理解中至关重要。

第一步:首先将树枝各小段作为独立体看待,各小段之间运动暂时不相互影响.根据公式(8)获得每小段的旋转角度和各节点位置.如图7,(1-2)小段旋转至(1-2′);(2-3)小段旋转至(2-p);(3-4)小段旋转至(3-m).结合公式(8)、(9)计算各小段旋转的角度θ1θ2θ3值如(10)所示:

 

(10)

由此可以进一步求到节点2′,p,m的位置值.

根据树枝形状,常用的树枝模型用圆柱体表示.

第三步:算法实现.如下图建立了一个有4小段的树枝的节点模型,假设风力为0时树枝的初始位置是一条垂直直线,图8是在参数E=300,R0=10,α=0.95,L=100,a=2,在树枝上施以不同大小和方向(实验中,F取值-100到100)的力时所求解的旋转角度值.由实验结果表明旋转角度法能够真实地模拟树枝随风摇摆的现象.

  

8 节点模型实验结果

第四步:编程使用Visual C++6.0开发平台,结合OpenGL渲染技术模拟实现树枝在风中摇曳的效果图,如图9所示.

  

9 渲染后的效果图

4 树叶运动分析

图10是树叶的简单模型图,编程时在框图上贴上真实树叶的纹理,包含叶柄和页面,就变成了能平动还能转动的真实感强的树叶.

完成注意力与定向力测试的连线测试(trail making test,TMT)[3],在完成量表前签署知情同意书。连线测试具有完成时间越短,认知功能越好的特点,包括两部分即为TMT-A以及TMT-B,相比较TMT-A,TMT-B难度更大。

  

10 树叶框图

本文主要研究树叶的三种运动:树叶下落,叶面绕叶柄旋转及树叶在枝头随树枝摇动.

不同情况下树叶在风中的转动也是不同的:当树叶挂在枝头时,叶子绕叶柄轴转动;而树叶被风吹落地面过程中叶子绕其两个对称轴转动.

全民学习共享平台的典型学习形式 全民学习共享平台是提供给社会每个成员进行终身学习的路径。终身学习是包括正式学习和非正式学习的学习过程。

根据经典牛顿力学原理,树叶的运动应归为变加速运动,因此可使用欧拉积分法[8]求解树叶下落运动.图11是树叶随树枝的运动,以及树叶下落运动的模拟结果.

1.2 中药材的拉丁名 中药材的拉丁名通常由两部分组成: 一部分是药用部位的名称(常见的有: 根Radi、根茎Rhizoma、花Flos等);另一部分有多种形式: 基源植物的属名,或基源植物的种名,或兼用基源植物的属名和种名;或用基源植物和其他附加词,用以说明具体的性质或状态[3]。

  

11 树叶随树枝运动和树叶下落运动

5 系统实现

使用OpenGL图形库来初始化三维场景,采用图形学中天空包围盒[8]的方法来设置树所处的环境,树枝采用了圆柱体加纹理[9]方法来绘制.

智能变电站装配式建筑造价评价问题的条件假设数学描述如下:假设智能变电站装配式建筑工程池中有n个装配式建筑工程造价水平待综合评价,则可供选择的装配式建筑工程集为N={N1,…,Nk,…,Nn},其中表示n个造价影响因子,影响因子权重向量表示为假设有m位专家参与装配式建筑造价评价,则将专家集表示为S={S1,S2,…,Sm},专家权重向量表示为

图12是树在变化的风力作用下树枝产生不同弯曲的模拟截图,由图中可看出当劲风吹来时,树枝弯曲较厉害,微风吹来时则树枝弯曲程度明显减弱.

  

12(a) 劲风作用下的树的模拟图

  

12(b) 树在微风中的模拟图

6 结论

为动态模拟树木在风中的运动,本文首先在L系统分形原理基础上建立了树的三维模型,然后考虑风力的作用,建立了随机风场数学模型,并采用旋转角度法来模拟树枝运动,最后,分析了树叶运动.采用VC++6.0和OpenGL[10-11]为开发工具,实现了树随风动的系统模拟,有效地模拟出树木在风中摇曳的逼真效果.

本文算法适用于绝大多数树种的模拟.未来更细致的研究中,可以进一步改善风力模型和增加树模型结构的复杂度.

[参考文献]

[1] 邹运兰,杨志红,王仁芳.基于迭代函数系统IFS的动态树木模拟[J].计算机应用与软件,2012(3):118-121.

[2] 常村红,葛寒松,谭同德.三维树木模拟研究与应用[J].河南科技大学学报:自然科学版,2012(1) :41-44.

[3] 袁修久,王胜勇,刘欣,等.推广的三维L-系统及在树木模拟中的应用[J].系统仿真学报,2011(11):2308-2311.

[4] 罗燕,吴中福,郭选昌,等.分形算法的仿真“竹”的实现[J].重庆大学学报,2010(12):138-144.

[5] 刘萍,刘艳艳,宗岩.基于分形的树木建模算法的研究[J].计算机技术与发展,2011(12):26-28.

[6] 孙金萍,唐翔,孙天凯.基于Perlin噪声函数和动力学的树木折枝模拟[J].计算机应用,2012(11):3240-3242.

[7] Ota S, Tamura M, Fujimoto T, Muraoka K, Chiba N.A Hybrid method for real-time animation of trees swaying in wind fields[J]. The Visual Computer 20(10) 2004:613~623.

[8] 孙家广,杨长贵.计算机图形学[M].北京:清华大学出版社,1995.

[9] 和平鸽工作室.OpenGL 高级编程与可视化系统开发(高级编程篇)[M].北京:中国水利水电出版社,2002.

[10]耿维忠,张彦芳.基于OpenGL的虚拟现实技术在教学场景开发中的应用[J].焦作师范高等专科学校学报,2009(1):68-69.

[11]高美真,黄娇青.OpenGL中的图形变换[J].焦作师范高等专科学校学报,2006(2): 51-53.

 
靳继红,李丽
《焦作师范高等专科学校学报》2018年第01期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号