三维分形几何图案的绘制.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分形几何的简单介绍 “分形”被认为是20世纪数学科学的最重要发现之一。自从Euclid(欧几里得)在两千多年前创立几何学以来,在漫长的岁月里,自然科学研究人员与数学家们基本上都在Euclid空间进行研究和探索。但Euclid几何学不是万能的,大自然中的许多现象都不可能由Euclid几何来解释。比如树是三维空间的实物,但能由来描述吗?显然不能。那么如何来描述大自然几何及其他许多Euclid几何所不能解决的问题呢?虽然历史上曾经出现像俄罗斯数学家Lobachevski(罗巴切夫斯基)创立的非欧几何,但其影响有限并且还不能解决我们当前所面临的许多问题。 分形的概念是美籍数学家曼德布罗特(B.B.Mandelbort)首先提出的。1967年他在美国权威的《科学》杂志上发表了题为《英国的海岸线有多长?》的著名论文。海岸线作为曲线,其特征是极不规则、极不光滑的,呈现极其蜿蜒复杂的变化。我们不能从形状和结构上区分这部分海岸与那部分海岸有什么本质的不同,这种几乎同样程度的不规则性和复杂性,说明海岸线在形貌上是自相似的,也就是局部形态和整体形态的相似。事实上,具有自相似性的形态广泛存在于自然界中,如:连绵的山川、飘浮的云朵、岩石的断裂口、布朗粒子运动的轨迹、树冠、花菜、大脑皮层……曼德布罗特把这些部分与整体以某种方式相似的形体称为分形(Fractal)。后来,英国数学家法尔科内(Falconer)提出罗列分形集的性质,来给分形下定义。如果集合F具有下面所有的或大部分的性质,它就是分形:(1)F具有精细的结构,即是说在任意小的尺度之下,它总有复杂的细节; (2)F是如此的不规则,以至它的整体和局部都不能用传统的几何语言来描述; (3)F通常具有某种自相似性,这种自相似性可以是近似的,也可能是统计意义上的; (4)F在某种意义下的分形维数通常都大于它的拓扑维数; (5)在多数令人感兴趣的情形下,F以非常简单的方法定义,或许以递归过程产生。 是对自然界大数据量的一个很好的描述,通常称R/S为重标极差。式中H为Hurst指数,c为常数。下面主要通过对分形的三维球体群的绘制来进一步了解分形的原理与美。分形图案绘制的基本算法 首先确定该图案的中心点,然后绘制第一个球体。 分别基于原来的中心点对x,y,z轴的方向进行平移,共平移6次。 每平移一次进行一次绘制,并且半径为原来球体的一半。 为每个球体进行着色,并且保证同一次迭代的球体的颜色相同。 重复进行(2)~(4),直到满足终止条件为止。 opengl的环境搭建 本实验用的为VS2008,下面为opengl的搭建: 1.安装 下载OpenGL类库 /source/274113(这个是1.4版本的),也可以到OpenGL官网下载其他版本。 将.h文件拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL目录中(没有GL目录就自己创建一个,这里的具体路径视电脑上VS2008安装的位置而定) 将.lib文件拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\lib目录中 将.dll文件拷贝到C:\Windows\System32目录中 2.配置环境 先创建一个Win32控制台项目,配置项目属性: (1)项目——项目属性——配置属性——C/C++— —预处理器——预处理器定义,添加 GLUT_BUILDING_LIB (2)项目——项目属性——配置属性——链接器——输入——附加依赖项,添加 glut32.lib Opengl32.lib Glu32.lib glaux.lib程序代码如下: #include stdafx.h//包含glut.h,windows.h等头文件 //设置种不同颜色 float colorbuf[7][4]= { 0.4 , 0, 0.4, 0.0, 0.6, 0, 0.6, 0.0,0.4, 0, 0.8, 0.0,0.8, 0.8, 0.8, 0.0,0.0, 0.5, 0.5, 0.0,0.28, 1.0, 0.0, 0.0,0.1, 0.0, 0.8, 0.0 }; //画球体 void sphere(float center[3], float radia, float color[4]) { //将当前坐标系入栈glPushMatrix(); //设置材料的背景颜色和散射颜色glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);//平移坐标系glTranslatef(center[0],

文档评论(0)

didala + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档