这个问题的数学原理已经被问了很多次,所以这不是我想要的具体答案。我想要的是将用于确定这些点的方程式编入JavaScript循环中,以便我可以在圆周上平均地显示这些点。
因此,根据点的X和Y位置的方程式:
pointX = r * cos(theta) + centerX
pointY = r * sin(theta) + centerY
我应该能够用这个计算出来:
var centerX = 300;
var centerY = 175;
var radius = 100;
var numberOfPoints = 8;
var theta = 360/numberOfPoints;
for ( var i = 1; i <= numberOfPoints; i++ ) {
pointX = ( radius * Math.cos(theta * i) + centerX );
pointY = ( radius * Math.sin(theta * i) + centerY );
// Draw point ( pointX , pointY )
}
我希望能够获得8个点在圆周上的x,y坐标,彼此间隔45度。但是这不起作用,我不明白为什么。
这是我得到的输出结果(使用HTML5 Canvas元素)。这些点应该位于最内层的红色圆圈上,因为那个圆有一个
错误:
当它“应该”看起来像这样(虽然这只是手动放置一个点):
正确:
可以有人帮我吗?自从我学三角函数以来已经过去了好多年,但即使查看其他例子(来自各种语言),我也看不出为什么这不起作用。