我在画布上绘制点的圆圈周围有一些数学问题。 我有半径,每个点的间距,甚至是围绕圆的角度,但问题是我希望它以指定的角度开始并以指定的角度结束。
代码
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.如上面的代码和示例所示:/
答案 0 :(得分:1)
您的spacing
值基于360度(或Math.PI*2
弧度)。
您的起始值(请参阅angle
计算)为Math.PI
(或180度)。
因此,您的跨度为180度到540度(Math.PI
到3*Math.PI
弧度。)
您可能需要将angle
计算(可能应重命名为radians
)更改为具有不同的起始角度。
您还需要将spacing
计算修改为基于所需弧度的度数/弧度。