使用Math.PI计算在画布上绘制点

时间:2014-04-19 00:54:44

标签: javascript math canvas

我在画布上绘制点的圆圈周围有一些数学问题。 我有半径,每个点的间距,甚至是围绕圆的角度,但问题是我希望它以指定的角度开始并以指定的角度结束。

代码

function getPoints(x,y,radius,ticks)
{
    var spacing = Math.PI*2/ticks;
    var points = [];
    for(var i=0; i<ticks;i++)
    {
        var angle = (spacing * i)+((ticks*Math.PI)/ticks);
        var x1 = x+radius*Math.cos(angle);
        var y1 = y+radius*Math.sin(angle);
        points.push({'x':x1,'y':y1});
    } 
    return points;
}

我很难搞清楚所需的数学。

这里也是项目的jsFiddle:http://jsfiddle.net/Keleko34/EMeG2/ 为了得到这个想法,我想要开始的学位是-45,并以225结束。

它开始的当前度数为0并且它完成整个360.如上面的代码和示例所示:/

1 个答案:

答案 0 :(得分:1)

您的spacing值基于360度(或Math.PI*2弧度)。

您的起始值(请参阅angle计算)为Math.PI(或180度)。

因此,您的跨度为180度到540度(Math.PI3*Math.PI弧度。)

您可能需要将angle计算(可能应重命名为radians)更改为具有不同的起始角度。

您还需要将spacing计算修改为基于所需弧度的度数/弧度。