返回列表 回复 发帖
这几天跟着各位老师学着弄陷阱,特别是杜老师提供的曲线陷阱算法,受益匪浅,总算是摸着了一点点门道,在此谢过!!!
    另外,有一种叫做“相切球”的陷阱,制作起来甚是繁复,头都大了。于是,便试着换个角度来思考这个问题,如果我们把这种陷阱叫做“球环”,情形就有所不同了,“球环”就是“球”在“环”上,环可以是圆,也可以是其他的形状,总之,环是连续的曲线,当球的半径为 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)
xklppp老师:
辛苦了!谢谢您精心编写的精品。
陷“井”应为陷“阱”,“阱”不是“井”的同义词,倒是和“陷”义相近。
106# dtt
谢了!!!
星环:
1.jpg
2.jpg
3.jpg
太精彩了,手痒痒了,可是还没弄懂哈!
捕获2015.jpg
返回列表