用数学方法对放大区域进行着色处理,这些区域就变成一幅幅精美的艺术图案,这些艺术图案人们称之为"分形艺术"。"分形艺术"以一种全新的艺术风格展示给人们,使人们认识到该艺术和传统艺术一样具有和谐、对称等特征的美学标准。这里值得一提的是对称特征,分形的对称性即表现了传统几何的上下、左右及中心对称。同时她的自相似性又揭示了一种新的对称性,即画面的局部与更大范围的局部的对称,或说局部与整体的对称。这种对称不同于欧几里德几何的对称,而是大小比例的对称,即系统中的每一元素都反映和含有整个系统的性质和信息。这一点与上面所讲的例子:"一头牛身体中的一个细胞中的基因记录着这头牛的全部生长信息",完全吻合。不管你是从科学的观点看还是从美学的观点看,她都是那么富有哲理,她是科学上的美和美学上的美的有机结合。
曼德布洛特集合(Mandelbrot
set)是在复平面上组成分形的点的集合。Mandelbrot集合可以用复二次多项式f(z)=z^2+c来定义。
其中c是一个复参数。对于每一个c,从z=0开始对f(z)进行迭代
序列 (0,
f(0), f(f(0)), f(f(f(0))),
.......)的值或者延伸到无限大,或者只停留在有限半径的圆盘内。
曼德布洛特集合就是使以上序列不延伸至无限大的所有c点的集合。
从数学上来讲,曼德布洛特集合是一个复数的集合。一个给定的复数c或者属于曼德布洛特集合M,或者不是。
比如,取c = 1,那么这个序列就是(0, 1, 2, 5, 26, ...),显然它的值会趋于无穷大;而如果取c =
i,那么序列就是(0, i, -1+i, -i, -1+i,
-i,...),它的值会一直停留在有限半径的圆盘内。
事实上,一个点属于Mandelbrot集合当且仅当它对应的序列(由上面的二项式定义)中的任何元素的模都不大于2。这里的2就是上面提到的“有限半径”。
曼德布洛特集合一般用计算机程序计算。对于大多数的分形软件,例如Ultra
fractal,内部已经有了比较成熟的例子。
C#语言源代码
:(摘自C#入门经典Ch04Ex06,为了和上面的定义一致,我稍作了改动)
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace Ch04Ex06
{
class Program
{
static void Main(string[] args)
{
double realCoord, imagCoord;
double realTemp, imagTemp, realTemp2, arg;
int iterations;
for (imagCoord = -1.2; imagCoord <=1.2; imagCoord +=
0.05)
{
for (realCoord = -1.77; realCoord <= .6; realCoord
+= 0.03)
{
iterations = 0;
realTemp = realCoord;
imagTemp = imagCoord;
arg = (realCoord * realCoord) + (imagCoord * imagCoord);
while ((arg < 4) &&
(iterations < 100))
{
realTemp2 = (realTemp * realTemp) - (imagTemp * imagTemp)
+ realCoord;
imagTemp = (2 * realTemp * imagTemp) + imagCoord;
realTemp = realTemp2;
|