- UID
- 263
- 帖子
- 942
- 精华
- 6
- 积分
- 1117
|
下面我们来谈谈M集的逃逸时间算法:
1、作绘图框架(以前说过,在这里就不重复了);
2、新建参数x0,y0,xc,yc;
3、计算:x'=x^2-y^2+xc,y'=2x*y+yc;
4、计算p=0.5(1-sgn(x'^2+y^2-4));说明这里逃逸半径设为4就足够了,可以证明在迭代序列{zn}中,当zn的模大于2时,迭代的结果点列{zn}一定发散,这里计算p是为了将逃逸点拉回到初始位置,以保证迭代终点可视化效果;
5、计算:x=p*(x'-x0)+x0,y=p*(y'-y0)+y0,在绘图区里绘制点(x,y),说明:当迭代终点逃出以原点为圆心,半径为2的圆时,其p值为0,结果下一次的迭代象点会回到迭代初始点z0,为下面计算逃逸时间作准备;
6、逃逸时间et 确定:新建参数t和n,计算t+p;
7、在绘图区里作点C,选中点C,点选变换菜单里的平移,作极坐标变换,平移方向为0,平移距离为1cm得到新点C',双击点C,作为缩放中心,以t+p为缩放比缩放点C',得到点C".隐藏点C';
8、度量点C的横纵坐标xc,yc,分别作为参数xc,yc的值输入;
9、作迭代:依次选中x0,y0,t,n作其分别到x,y,t+p,迭代深度为n的迭代,得到两个迭代象,一个是点C'的迭代象,另一个是点(x,y)的迭代象;
10、选中点C'的迭代象在变换里作其终点,度量终点到点C的坐标距离,得到逃逸时间设为et;
11、选中点(x,y)的迭代象仿上作其迭代象的终点,度量其横坐标,纵坐标,到原点的坐标距离;说明这些量可以用来设置着色参数;
12、新建函数f(x)=sin(x),计算f(et),f(0.5et),f(0.8et),分别标签为r,g,b;
13、选中点C和r,g,b在显示里选颜色RGB变化范围从0到1,产生新的点C''';
14、选中扫描线和点C及C'''作轨迹,在显示里选追踪轨迹;
15、修改参数的值:x0=0,y0=0,n=100.a=-0.75,b=0;
16、点击绘图按钮,绘图。
大家作作看,有什么不对劲的地方,请及时提出来,也请你及时把你的作品发上来大家交流,不要怕作得不好!慢慢就会好起来! |
|