返回列表 回复 发帖
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
a.jpg
前面程序中有两处算法错误,纠正后并在陷阱模块中加入了几条曲线。
下面的曲线为:r=|t/4|-k.......t(幅角)、k(形状大小)
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
html0608.rar (10.25 KB)
作花边图案蛮好的:
r=k*ln(|Zr|+|Zi|)
1.jpg
r=k*ln|z|
2.jpg
这几天跟着各位老师学着弄陷阱,特别是杜老师提供的曲线陷阱算法,受益匪浅,总算是摸着了一点点门道,在此谢过!!!
    另外,有一种叫做“相切球”的陷阱,制作起来甚是繁复,头都大了。于是,便试着换个角度来思考这个问题,如果我们把这种陷阱叫做“球环”,情形就有所不同了,“球环”就是“球”在“环”上,环可以是圆,也可以是其他的形状,总之,环是连续的曲线,当球的半径为 0 时,曲线上便有着无数个球,当球的半径大于 0 时,所有球的球心便是曲线上离散的点,连续的曲线可以作陷阱,非连续的曲线同样可以,这样,我们就有了制作球环陷阱的算法,下面是球圆环(通过参数面板上的 Pt 控制球的数量):
   name:"balls",
    func:function(x,y)
    {
        var t=2*pi/balls;               //球与球的间隔,这里为角度,即扇形区域
        var b=round(atn2(y,x)/t);       //轨迹上当前点落入的扇形区域
        var ox=k*cos(b*t),oy=k*sin(b*t);//当前扇形区陷阱球的球心,k 为球环的半径
        x=x-ox,y=y-oy;
        return sqrt(x*x+y*y);           //轨迹上当前点与当前陷阱球球心的距离
    }
1.jpg
2.jpg
3.jpg
4.jpg
html0609.rar (10.33 KB)
1.jpg
下面的球环弄不好:
2.jpg
3.jpg
原来这种环上的球,其大小是变化的:
4.jpg
5.jpg
虽然还有很多精妙的陷阱弄不明白,但我们的程序到现在陷阱模块的轮廓已经初步完成,参数面板中的陷阱控制如下:
    Tr...陷阱中各点的捕捉半径,代码: oTsize
    Ti...陷阱的镂空半径,即整体形状的大小,代码:oTiner
    Sk...陷阱揭开的层数,代码:skip
    Pt...用来控制球环中球的数量、玫瑰曲线和心曲线的花瓣数量等,代码:petals
    上面没有贴出源程序,是因为陷阱模块比较乱,整理了一下,现贴于此,敬请赐教,谢谢各位老师!!!
html0610.rar (10.37 KB)
106# dtt
谢了!!!
星环:
1.jpg
2.jpg
3.jpg
没有杜老师的无私帮助,我到现在还弄不明白这些陷阱是怎么回事,非常非常感谢!正如杜老师上面贴出的作品,陷阱环上不仅仅可以是球,还可以是其他的形状。因为单点陷阱中也有各种各样的环,为讨论方便,我们这里不妨把这种多点陷阱称之为“链”,就像珍珠项链一样。
    1.我们用特定的曲线定义“链”,用特定的形状定义链上的珠子(珠子也可以是曲线)。
    2.根据珠子的数量将“链”分成若干区域,每个区域一个捕捉点,当轨迹上的点落入该区域时,便由该点进行捕捉。
    3.单点陷阱的坐标原点为(0,0),而这种“链”陷阱的坐标原点是由“链”曲线动态地确定的。
    4.不管是什么样的“链”曲线,比方说圆曲线,如果“链”的半径为 0,那么,最终的结果等同于单点陷阱。
    我想尽量说的明白一点,但要真正从数理和陷阱的本质上来讨论,还得仰仗各位老师,谢谢!!!
    另外,如果要让代码清爽一点,这种“链”陷阱需要开辟一个单独的模块,我们的代码需要动大手术,眼下只能勉强为之,模块之间有些纠缠不清。
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
a.jpg
html0701.rar (10.46 KB)
返回列表