二、复平面中的神奇迭代
Mandelbrot集合是Mandelbrot在复平面中对简单的式子 Z <- Z^2 + C 进行迭代产生的图形。虽然式子和迭代运算都很简单,但是产生的图形出现那么丰富多样的形态及精细结构简直令人难以置信以至于不可思议。在传统几何学中难以找到如此简单的规律隐藏着如此复杂而生动的例子。Mandelbrot集合告诉我们自然界中简单的行为可以导致复杂的结果。例如,大型团体操中每个人穿的衣服只有几种颜色中的一种,每个人的动作也只是导演规定的几种之一。但是整体上可以显示出多种多样的复杂形态。
Julia 集合
在复平面上,水平的轴线代表实数,垂直的轴线代表虚数。每个Julia集合(有无限多个点)都决定一个常数C,它是一个复数。现在您在复平面上任意取一个点,其值是复数Z。将其代入下面方程中进行反复迭代运算:
就是说,用旧的Z自乘再加上C后的结果作为新的Z。再把新的Z作为旧的Z,重复运算。 当你不停地做,你将最后得到的Z值有3种可能性:
1、Z值没有界限增加(趋向无穷) 2、Z值衰减(趋向于零) 3、Z值是变化的,即非1或非2
趋向无穷和趋向于零的点叫定常吸引子,很多点在定常吸引子处结束,被定常吸引子所吸引。非趋向无穷和趋向于零的点是"Julia集合"部分,也叫混沌吸引子。
问题是我们怎样才能让计算机知道哪一个点是定常吸引子还是"Julia集合"。一般按下述算法近似计算:
n=0; while ((n++ < Nmax) && (( Real(Z)^2 + Imag(Z)^2) < Rmax)) { Z=Z*Z+C; }
其中:Nmax为最大迭代次数 Rmax为逃离界限
退出while循环有两种情况,第一种情况是:
(Real(Z)^2 + Imag(Z)^2) >= Rmax
属于这种情况的点相当于"1、Z值没有界限增加(趋向无穷)",为定常吸引子,我们把这些区域着成白色。第二种情况是:
n >= Nmax
属于这种情况的点相当于"2、Z 值衰减(趋向于零)"或"3、Z 值是变化的",我们把这些区域着成黑色。黑色区域图形的边界处即为"Julia集合"。"Julia集合"有着极其复杂的形态和精细的结构。
黑白两色的图形艺术感染力不强。要想得到彩色图形,最简单的方法是用迭代返回值n来着颜色。要想获得较好的艺术效果,一般对n做如下处理:
Red = n*Ar+Br; Grn = n*Ag+Bg; Blu = n*Ab+Bb; if ((Red & 0x1FF) > 0xFF) Red = Red ^ 0xFF; if ((Grn & 0x1FF) > 0xFF) Grn = Grn ^ 0xFF; if ((Blu & 0x1FF) > 0xFF) Blu = Blu ^ 0xFF; 其中:Ar、Ag、Ab及Br、Bg、Bb为修正量
获得的Red、Grn、Blu为RGB三基色,着色效果为周期变化,具有较强的艺术感染力,而且等位线也蕴藏在周期变化的色彩之中。
你可以想象得出,在屏幕上顺序的试用每个像素点来反复迭代方程要花费很长的时间。一幅 1024x768 屏幕尺寸的画面有786432个点。其中一些点在计算机上要反复迭代方程次数达1000次(取决于Nmax的取值)或更多次才放弃运算。 运算产生一幅Julia集合需要花费很长的时间,有时需要产生一幅做海报用的大图像时,如 10240x7680,要花几天的时间。当然,你使用高速计算机会缩短这个时间。图 4、5、6是三幅Julia集合:
图 4 象尘埃一样的结构 图 5 稳定的固态型 图 6 象树枝状
出处:分形艺术
责任编辑:moby
上一页 分形艺术基本知识及作品欣赏 [1] 下一页 分形艺术基本知识及作品欣赏 [3]
◎进入论坛Photoshop、Fireworks版块参加讨论
|