基于OpenGL的树干模拟与实现.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenGL的树干模拟与实现

基于OpenGL的树干模拟与实现谢冰青,黄襄念(西华大学,成都610039)摘要:为了解决大自然中不规则的树干逼真模拟,用分形递归和L系统这经典算法实现植物的生长拓扑结构,同时调用OpenGL函数库进行绘制和反走样处理。在VS2010的环境下,实现不规则树木形态的仿真,并通过实验结果来验证可行性。关键词:分形;递归;LS算法;反走样0引言分形在我们的生活中无处不在,例如:段;+:逆时针旋转角度为β,逆时针方向设定为正方向;-:顺时针旋转β;[:将当前信息压栈;]:将“[”时刻的信息出栈。如图1所示,(a)图表示字符串的龟图解释,而(b)图表示的是字符串“FF+F-F+FF-F-FFF”的龟行走示意图,其中β=90°。广袤的草原,曲折蜿蜒的山脉,美丽的花朵,等等。用欧式几何学是无法描述这些现象的,而分形几何学却可以很轻松地构造出相应的模型,同时还可以获得相应模拟的几何性质。从某种理念上说,分形被称为自然界中的几何学,分形可以说是一类形状,更是一种方法[1]。1L系统算法的原理在20世纪50年代,著名的美国语言学家N.Chomsky首次提出了递归生成语法的方法[2~3],用一个或者几个初始字母,以及一组“生成规则”,将生成规则反复地作用到初始字母和“生成规则”上,从而生成整个语言。L系统算法就是仿照这种“生成规则”来绘制图形的一种算法。1.1二维树木L系统算法的概述L系统算法在二维平面上的生成过程就像沙滩上运动的海龟[4~5],每一时刻海龟行走的的状态,定义为当前位置矢量T(x,y)与前进的方向角α的集合(T,α),在二维平面下,L系统算法的绘图规则如下所示:F:以当前的方向为基准,向前前进一步,画出线段;%A(a)(b)图1二维LS系统龟行走图图b可以看出,LS生成就像一笔画一样,没有断点,也没有交叉或者是重画的线段,但是这种规则不符合树枝这样的分支结构,所以要在分支结构的某些关键点处,多加入几个行走方向,在同一时刻往多个方向行走,这个时候就要用到“[”和“]”符号。用符号“F”代表树干和旁枝[5],树枝的生长方向用“+”和“-”来表示,但是遇到分支点,便可以用符号“[”将当前的树枝状态存乌龟的状态变为(x,y,l),其中x=x+lcosα,y=y+lsinα;f:以当前的方向为基准,向前前进一步,但不必画出线图形图像起来,由于每一个分支点至少要有两个生长方向,当画完其中一个生长方向后,可以利用符号“]”将存储的分示前后、U軑表示上下。龟的旋转可以表示成:[H,L,U]=[H,L,U]R,其中:支点状态取出,的分支。从而又回到该分支点来画第二个方向0cosαsinαcosα0010000000000000R(α)=0-sinα01H001.2二维树木模型仿真二维树木生成的原理按照上述过程即可,0000000以一个0cosα-sinα000000000简单水草为例,设定一个初始元F;生成元为F[+F]F[F][-F+F];角度为10°。生成结果如图2所示:0RL(α)=000cosα000000sinosαsinα0000RU=00-sinα000000000cosα000通过此算法可以得出图3,可以看出植物树干的立体性更强,其中图3左侧的图形表示的是分叉元较少的情况下的树干图,不足以体现树干复杂性的形态,而图3右侧的表示的分叉元多的情况下的树干更接近现实的树干。(a)2,3,4,5迭代次数后的水草效果(b)水草的真实照片图2水草二维仿真由图2可以看出,虽然通过L系统算法模拟出来的水草和自然界的水草很接近了,但是真实的水草形态并没有很高自相似性,所以水草形态的真实感不能用这种方法得以良好地体现。如二维植物的模型拓展到三维,同时增加反走样处理,势必会增强树干模拟的真实感。图3三维树木拓扑结构树枝的形态设计在VS2010环境下,调用OpenGL函数库,实现树木的仿真。OpenGL库文件分为下面三类:动态链接库文件(.dll)glaux.dll、glu32.dll、glut32.dll、OPENGL32.DLL。头文件(.h)GL.H、GLAUX.H、glos.h、GLU.H、glut.h。库文件(.lib)GLAUX.LIB、Glu32.lib、glut32.lib、Opengl32.lib。对VS2010软件进行环境的配置,将头文件分别放在X:\ProgramFiles\MicrosoftVisualStudio10.0\VC\In-clude\GL目录下,将所有的库文件均放入X:\ProgramFiles\MicrosoftVisualStudio10.0\VC\Lib目录下,再将所有的动态链接库均放到X:\Windows\System32目录下。2.1三维树枝的LS算法概述在三维平面上,三维龟图解释[6~7]

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档