- UID
- 4723
- 帖子
- 752
- 精华
- 5
- 积分
- 1778
|
代数法去掉J集合第一个等势圈的方法:
0/sgn(sgn(2-sqrt(x^2+y^2)+1);
这里x,y是初值的坐标。逃逸半径为2.
去掉第二个等势圈的方法:
0/sgn(sgn(2-sqrt(x1^2+y1^2)+1);
这里x1,y1是迭代一次的坐标。
逃逸半径为2.
如果用就第二个同时去掉第 1,2两个等式圈。
设初值为x0,y0
第一次迭代的象为x1,y1.
计算距离dist1=sqrt(x1^2+y1^2)
计算终点象距离dist=sqrt(xn^2+yn^2)
再计算比值:dr=dist/dist1,这个比值是一个连续变量。而且dr≠0
而距离dist是一个跳跃的变量。用连续的变量dr着色可以让等势圈渐变。
方法如下:
R=r*|sin(π/T*dr)|;
G=g*|sin(π/T*dr)|;
B=b*|sin(π/T*dr)|.
r,g,b是三原色的混合比。调整比值就可以着不不同渐变颜色。T为周期,由于有绝对值,计算周期时不是2pai/T,而是π/T。
另:变量dist/sqrt(x^2+y^2)也是一个连续的变量,这个变量的分母可以是0,从而会产生震荡,生成各种特效环。
最后,如果不考虑J集合的外部着色,直接用dist着色就不错了。
如果要进一步的着色,使环变化更丰富,可以把用三角级数的前三项着色。震荡绘制J集合中在嵌套一个分形。
如果引入分段函数,可以控制震荡的范围在特定的园外。
方法是:
r=0.5(震荡半径)
dist0=r-sqrt(x)^2+y0^2)(震荡域,如果把这个方程修改,就可以够造出非圆环的环,这个方程控制了震荡的形状,可以叫震荡方程)
boolean0=sgn(sgn(dist0)+1)(判断震荡,园内值=1,园外值=0)
osc=dist*boolean0)+dist/dist0*(1-boolean0)
用osc(oscillation)带人上面的R,G,B着色就可以把震荡控制在半径为r的园外。
去环的方法的实例文件在21楼。 |
|