关闭

圆形点数组,螺旋点数组生成函数

标签: ui代码算法javascript
338人阅读 评论(0) 收藏 举报
分类:
一个js方法,用来生成一组点坐标,通过num_限制点个数。
点坐标使用的是cocos2dx的cc.p(x,y).
//关于有规律的螺旋点生成工具
//圆心点,起始半径,半径变化值,起始角度,角度间隔,角度间隔变化值,创建多少个点,是否包含中心点
circlePlace:function(centerPoint_,r_,rBuffer_,beginAngle_,perAngle_,angleBuffer_,num_,containerCenter_){
    var _backPosArr=[];
    var _currentAngle=beginAngle_;
    var _currentCount=0;
    var _atr=Math.PI/180;
    var _centerX=centerPoint_.x;
    var _centerY=centerPoint_.y;
    var _r=r_;
    if(containerCenter_){
        _backPosArr.push(centerPoint_);
    }
    while (_currentCount<=num_){
        _currentCount++;
        var _x=_centerX+_r*Math.cos(_currentAngle*_atr);
        var _y=_centerY+_r*Math.sin(_currentAngle*_atr);
        perAngle_+=angleBuffer_;
        _currentAngle+=perAngle_;
        _r+=rBuffer_;
        _backPosArr.push(cc.p(_x,_y));
} return _backPosArr;},

调用
等分圆 屏幕中点为原点,半径100,每30度创建一个点,共12个。
circlePlace(cc.p(this.winSize.width*0.5,this.winSize.height*0.5),100,0,0,30,0,12)
螺旋线 半径递增,角度递减
circlePlace(cc.p(this.winSize.width*0.5,this.winSize.height*0.5),10,5,0,10,-0.1,100,true);

有兴趣可以自己在改改,比如添加一个衰减机制,现在的+=部分变成*=然后递减的部分变成一个衰减,效果就好很多。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9288次
    • 积分:187
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:13条
    文章分类
    最新评论