分形在山地生成中的应用[1]---中点位移法
EmilMatthew (EmilMatthew@126.com) 06/07/1 8
[ 类别 ]算法实现
[推荐指数]★★★
[ 摘要 ]本文运用中点位移法,实现了山地的高程生成。
[ 关键词 ]分形、山体生成、中点位移法
Use Fractal in Terrain Generating [1]---
Midpoint Displacement Method
[Classify] Algorithm Implementation
[ Level ] ★★★
[Abstract] In this article, I use mid point displacement method ,to implement the height generating of the terrain.
[Key Words]fractal、terrain generating、mid point method
[0引言]
用计算机来摸拟自然景物与现像,如山地层峦叠嶂,大海的波涛汹涌,云彩的万千变幻,是一个十分吸引人的High Order,要完成这样的一个模拟:涉及到计算机图形学、随机数学、偏微分方程数值解法,以及相关的物理知识等多方面的知识,还要再加点艺术感,这可真算不上是件轻松的活,但是,最后的结果是如此的吸引人,以致于让很多人对此乐此不疲。
[1原理]
山体地形生成的主要方法有:傅立叶滤波法(Fourier filtering),中点位移法(midpoint displacement)等,其中,中点位移法是标准确的分形几何的方法,
它是基于Mandelbrot和Van Ness 于1968 年提出的一类一维高斯随机过程分形布朗运动(Fractional Brownian Motion)而建立的。主要的算法相当好理解,如下:
图1
(1) 初始条件,确定初始生成的四个点上的高程值。
Count=0
While Count<Iterate Count
对于当前需细分的所有方格:
令a11,a12,a21,a22为方格的左上,右上,左下,右下的四个点
则可生成新的五个点将当前的方格再细分成四份,生成规则如下:
m1=(a11+a12)/2+r1n
m2=(a12+a22)/2+r2n
m3=(a21+a22)/2+r3n