文档介绍:分形几何在自然景物模拟中的研探
潘恒亮
(信息工程学院计算机科学与技术专业)
概述
自然景物模拟是计算机图形学的一个重要研究内容。与规则几何体不同,自然景物的表
面往往包含有丰富的细节或具有随机变化的形状,它们很难用传统的解析曲面来描述。分形
几何(fractal)是 Mandelbrot 于 1975 年造出的一个名词,分形几何关注的是物体的随机性、奇
异性和复杂性,它试图透过混乱现象和不规则构型揭示隐藏在背后的局部与整体的本质联系
,它用递归算法使复杂的
景物可用简单的规则来生成,在现代的计算机图形学中,分形几何在对自然现象的真实绘制
和建模方面起着重要作用。
本文基于 Pwin98 的 Microsoft Visual C++ 及 MFC 开发平台,使用 OpenGL 图形库,
设计了一个交互式的 VR 环境自然景物建摸系统,我们希望通过分形(fractal)迭代的算法
生成自然植物模型,在未来的虚拟场景漫游中得到应用,这样一来,我们就能省去很多的建
模时间,而且能够获得非常逼真的效果,系统采用面向对象编程方法实现。图 1 是本系统的
建模界面,用户通过控件操作或参数设置进行对树、地形、和山等自然景物的模拟。
1 分形几何
图 1 自然景物建摸界面
著名理论物理学家约翰·惠勒()说过,在过去,一个人如果不懂得“熵”是
怎么回事,就不能说是科学上有教养的人;在将来,一个人如果不能同样熟悉分形,他就不
能被认为是科学上的文化人。
为了说明分形,我们先引进维数的概念。我们都知道,线度放大到原来的 2 倍,线段的
长度也扩大到原来的 2 倍,而平面图形的面积扩大到原来的 4=2x2 倍,空间物体的体积扩
大到原来的 8=2x2x2 倍,即对经典的几何对象,度量单位û 与测量结果 L 之间的关系依赖
于某个常数 D:线度放大 k 倍,整个对象就放大到原来的 p=kD 倍,这个 D 就是我们常说的空
间维数(点是 0 维的,线是 1 维的,面是 2 维的,体积是 3 维的)。我们把上面关系改写一下:
D=lnp/lnk,这时,D 已经不必规定为整数了。在数学上,对于 m 维空间点集 X,记 N(r)是
覆盖 X 所需的半径为 r 的 m 维球的个数,则当-r>0 时,如果 N(r)的增长规律服从 N(r)正比于
r(-D),就称点集 X 的 Hausdoff 维数为 D。
关于维数的定义可以有多种方式,上面定义只是其中最为简单的一种。一般来说,对
分形维数的计算是很复杂的,应用不同的定义算出的维数并不相同,所以对分形维数的近似
计算方法的研究也有很多的讨论。一般来说,规则几何对象的维数总是整数的,而分形图形
1
的维数一般不是整数,所以,Mandelbrot 在一开始给分形下定义时就简单地说:“所谓分形,
指的就是其 Hausdoff 维数不是整数的几何对象。”尽管这个定义后来证明过于简单和武断,
但确实是一个识别分形的好方法。
2 基于 L 系统树的模拟
树木的生成算法中以 Cayley 树最简单,但这种的树的逼真度很差,因而人们提出了其
它算法。1968 年,丹麦