分数维的山峰与植物

分数维的山峰与植物

ID:22032807

大小:324.50 KB

页数:5页

时间:2018-10-26

分数维的山峰与植物_第1页
分数维的山峰与植物_第2页
分数维的山峰与植物_第3页
分数维的山峰与植物_第4页
分数维的山峰与植物_第5页
资源描述:

《分数维的山峰与植物》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、分数维的山峰与植物大厅的灯光暗下来,帐幕徐徐打开,银幕上出现了根据J.R.R.Tolkien的三部曲“LordoftheRings”所改编的电影。Frodo在一个开阔的峡谷里溜达着。远处,锯齿状的冰雪覆盖着的山峰耸入云端。近处有些不知是什么种类的奇花异木在阳光下闪烁。转眼,屏幕上的奇景变成了一个男巫凝视着一只水晶球,在这球体的中央出现了一个堡垒,火焰正从它的城垛里窜出来。虽然现在还很难说Frodo是否会在这样的电影里出现,但我肯定那些山峰、树木、水晶球以及火焰都会奇妙地出现在银幕上。这个成就主要将归功于Pixar公司(即从前的Luca

2、sfilm计算机绘图实验室)所开发的软件和硬件。有家用计算机的读者都能够在计算机上作出基本类似于这些东西的图形来。由于本文篇幅所限,不能在此对水晶球和火焰作一个广泛深入的论述,但还是能够揭示产生它们的基本原理。在上面描述的假想的电影中,我们可以把摄像机移向Frodo身后的那些山峰上。人们可能从来没有见过比这些山峰更令人生畏的大片陆地了。每一个大的山峰都由一些较小的山峰构成,而这些较小的山峰又由比它们更小的山峰组成,如此下去就形成了一种小山峰的无穷回归。即使一个有皮质脚的滴水嘴一样的海怪站在这样一个犬牙般的地方也会感到难受(见彩图11)

3、。原则上,这样的一种山的图形是容易作出来的。为简便起见,我假定这山覆盖了一个三角形的地面。找出每条边的中点,用三条线段把这三个中点连起来。就把这三角形分成了四个较小三角形。用同样的办法再分这四个小三角形。这一过程不断进行,直到达到分辨率极限或计算时间极限为止。结果是得到一大堆令人感到枯燥无味的三角形。如果要使这图形变得生动一些,可以在作图过程中加进一条有关垂直方向上的规则:每当新的中点画在图上时,就使其向上或向下移动某一随机量。通常这个随机数必须随三角形的逐渐变小而减少。这一规则把那些三角形变成弄皱了的山峰和褶皱(见图)。为什么这一种

4、方法会作出那样逼真的山峰图案呢?答案在于这个过程中产生了一个分数维图形,即当图案不断放大时会显露出更多的细节的图形。分数维形态在自然界似乎是随处可见。我们可以用一个关于海岸线的例子解释分数维图形的基本概念。假设我们要用一根l000米长的测量杆测量出法国海岸线的长度,那么就得沿着海滩向前一杆一杆地进行艰难的测量,同时数出有多少个l000米。然而这样会把许多小的海湾和海岬遗漏掉,所以用这种办法测出的最后得数是不那么准确的。用一根l米长的测量杆重复这一过程,会得出一个更精确、数字更大的结果。但即使如此,也有大量的小海湾和岬地被遗漏掉了。无疑

5、,用一根l厘米长的测量杆结果就会更为精确。一般规律是,当测量杆变小时,测出的海岸线长度会增大。测出的长度与测量杆杆长之比率为一个专门值,这个值称为分数维。分数维与通常说的维不同,它往往被表达成一个分数,而不是一个整数。例如我们讨论的海岸线的维数可能就是一个3/2的分数维。可以把这样的一种形状想象成一个介于一维形状(直线)和二维形状(平面)之间的中间形状。如果海岸线比较直,其分数维就接近于1。如果海岸线很曲折,其分数维就接近于2,此时它几乎填满一个二维平面。自然界的分数维模型实际上隐含了细节的无穷回归。从计算机绘图的角度来看,无穷回归是

6、无关紧要的问题;只要景物看来是具有各级放大水平上的细节就行了。在达到屏幕分辨率的极限之前,计算机上生成的山的特征就与上述分割过程中最终所得的三角形的特征一样精细。完整的山峰绘制算法太长太复杂,无法在此作足够详细的介绍。但有一个简单的程度可以绘出Mandelbrot峰的断面,它称为MOUNTAIN。该程序体现了沿垂直轴随机移动中点这一基本早想。开始时是一条水平线段。确定其中点,使其向上或向下移动一段随机地确定的距离,然后把由此产生的两个线段再分,并使其各自中点也按此规则移动。用类似于再分三角形的方法可把这一过程不断地进行下去。程序MOU

7、NTAIN有两个数组,叫做points和lines。其作用是保持计算机屏幕上的山的轮廓。每个数组分别有两列和足够多的行(比如说2048行)以方便地调整屏幕分辨率;points的两列是坐标值,而lines的两列则是下标。每条线段定义为数组points中表明该线段终点坐标的一对位置。观察一个普通的多边形通过一连串的再分后形成山的轮廓这一过程是非常有趣的,所以程序MOUNTAIN使每一次图案的形成都处于用户的控制下。在—次主循环结束时,程序询问用户是否需要另一次迭代,如果回答是肯定的,那么执行会再返回此程序的开头。主循环的作用是把当前的点与

8、线段的集合变成大1倍的新集合。为实现这一点,它一次一行地对数组lines进行扫描,查寻其对应点的下标并从数组poinlts中检索出它们的坐标。在已知某一给定线段的两个端点坐标后,程序就可以计算出该线段的中点坐标,同时随机

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。