大家都是玩复形的高手,所以,我们这里只需就程序设计的思路和代码的结构展开讨论。
对于 mandbrot 集,我们有伪代码:
扫描 C 平面
{
对当前扫描点进行几何变换(如果需要的话).......变换模块
对当前点按给定的算法(如:z=z^2+c)进行迭代....迭代模块
根据迭代结果对当前点进行着色.................着色模块
}
把里面的功能模块独立出来写成函数,我们很容易就能写出 mandbort 集的 javascript 代码框架:
function Mandbrot()
{
var iterator=function(){} //迭代算法
var transPlane=function(){} //对扫描平面进行几何变换
var setColor=function(){} //设置当前扫描点的颜色
var scanCplane=function(){} //扫描 C 平面
}
在窗体代模块中,我们设置几个变量:
var Zr=0,Zi=0,Cr=0,Ci=0,eM=2,eT=20;
其中 z=(Zr,Zi)、c=(Cr,Ci)、eM(逃逸半径)、eT(逃逸时间),Cr、Ci暂时没用。