分数维山峰与植物.docVIP

  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文档。上传文档
查看更多
分数维的山峰与植物 大厅的灯光暗下来,帐幕徐徐打开,银幕上出现了根据J.R.R.Tolkien的三部曲“Lord of the Rings”所改编的电影。Frodo在一个开阔的峡谷里溜达着。远处,锯齿状的冰雪覆盖着的山峰耸入云端。近处有些不知是什么种类的奇花异木在阳光下闪烁。转眼,屏幕上的奇景变成了一个男巫凝视着一只水晶球,在这球体的中央出现了一个堡垒,火焰正从它的城垛里窜出来。 虽然现在还很难说Frodo是否会在这样的电影里出现,但我肯定那些山峰、树木、水晶球以及火焰都会奇妙地出现在银幕上。这个成就主要将归功于Pixar公司(即从前的Lucasfilm计算机绘图实验室)所开发的软件和硬件。有家用计算机的读者都能够在计算机上作出基本类似于这些东西的图形来。由于本文篇幅所限,不能在此对水晶球和火焰作一个广泛深入的论述,但还是能够揭示产生它们的基本原理。 在上面描述的假想的电影中,我们可以把摄像机移向Frodo身后的那些山峰上。人们可能从来没有见过比这些山峰更令人生畏的大片陆地了。每一个大的山峰都由一些较小的山峰构成,而这些较小的山峰又由比它们更小的山峰组成,如此下去就形成了一种小山峰的无穷回归。即使一个有皮质脚的滴水嘴一样的海怪站在这样一个犬牙般的地方也会感到难受(见彩图11)。 原则上,这样的一种山的图形是容易作出来的。为简便起见,我假定这山覆盖了一个三角形的地面。找出每条边的中点,用三条线段把这三个中点连起来。就把这三角形分成了四个较小三角形。用同样的办法再分这四个小三角形。这一过程不断进行,直到达到分辨率极限或计算时间极限为止。结果是得到一大堆令人感到枯燥无味的三角形。如果要使这图形变得生动一些,可以在作图过程中加进一条有关垂直方向上的规则:每当新的中点画在图上时,就使其向上或向下移动某一随机量。通常这个随机数必须随三角形的逐渐变小而减少。这一规则把那些三角形变成弄皱了的山峰和褶皱(见图)。 为什么这一种方法会作出那样逼真的山峰图案呢?答案在于这个过程中产生了一个分数维图形,即当图案不断放大时会显露出更多的细节的图形。分数维形态在自然界似乎是随处可见。我们可以用一个关于海岸线的例子解释分数维图形的基本概念。假设我们要用一根l000米长的测量杆测量出法国海岸线的长度,那么就得沿着海滩向前一杆一杆地进行艰难的测量,同时数出有多少个l000米。然而这样会把许多小的海湾和海岬遗漏掉,所以用这种办法测出的最后得数是不那么准确的。用一根l米长的测量杆重复这一过程,会得出一个更精确、数字更大的结果。但即使如此,也有大量的小海湾和岬地被遗漏掉了。无疑,用一根l厘米长的测量杆结果就会更为精确。 一般规律是,当测量杆变小时,测出的海岸线长度会增大。测出的长度与测量杆杆长之比率为一个专门值,这个值称为分数维。分数维与通常说的维不同,它往往被表达成一个分数,而不是一个整数。例如我们讨论的海岸线的维数可能就是一个3/2的分数维。可以把这样的一种形状想象成一个介于一维形状(直线)和二维形状(平面)之间的中间形状。如果海岸线比较直,其分数维就接近于1。如果海岸线很曲折,其分数维就接近于2,此时它几乎填满一个二维平面。 自然界的分数维模型实际上隐含了细节的无穷回归。从计算机绘图的角度来看,无穷回归是无关紧要的问题;只要景物看来是具有各级放大水平上的细节就行了。在达到屏幕分辨率的极限之前,计算机上生成的山的特征就与上述分割过程中最终所得的三角形的特征一样精细。完整的山峰绘制算法太长太复杂,无法在此作足够详细的介绍。但有一个简单的程度可以绘出Mandelbrot峰的断面,它称为MOUNTAIN。该程序体现了沿垂直轴随机移动中点这一基本早想。开始时是一条水平线段。确定其中点,使其向上或向下移动一段随机地确定的距离,然后把由此产生的两个线段再分,并使其各自中点也按此规则移动。用类似于再分三角形的方法可把这一过程不断地进行下去。 程序MOUNTAIN有两个数组,叫做points和lines。其作用是保持计算机屏幕上的山的轮廓。每个数组分别有两列和足够多的行(比如说2048行)以方便地调整屏幕分辨率;points的两列是坐标值,而lines的两列则是下标。每条线段定义为数组points中表明该线段终点坐标的一对位置。观察一个普通的多边形通过一连串的再分后形成山的轮廓这一过程是非常有趣的,所以程序MOUNTAIN使每一次图案的形成都处于用户的控制下。在—次主循环结束时,程序询问用户是否需要另一次迭代,如果回答是肯定的,那么执行会再返回此程序的开头。 主循环的作用是把当前的点与线段的集合变成大1倍的新集合。为实现这一点,它一次一行地对数组lines进行扫描,查寻其对应点的下标并从数组poinlts中检索出它

文档评论(0)

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

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

1亿VIP精品文档

相关文档