为什么我不能正确地将元素放在圆周上?

时间:2016-04-07 12:36:47

标签: javascript d3.js geometry trigonometry coordinate-systems

我有这个小提琴:http://jsfiddle.net/wQXCL/427/

效果很好。将图像定位在圆弧的末端。但这是因为我在定位图像时拿走了90度(Math.PI/2)。

在取走90度之前:http://jsfiddle.net/wQXCL/428/

对我而言,它似乎是计算圆上点的公式:

x = cx + r * cos(a)
y = cy + r * sin(a)

起始角度是90度,这是正确的吗?

或者我是否错误地解释了整件事?

1 个答案:

答案 0 :(得分:2)

D3的arc.startAngle()指定为:

  

角度以弧度表示; 0对应于12点(负y)并顺时针进行,以2π重复。

相比之下,trigonometric functions on the unit circle的定义如下:

  

从原点(0,0)到(x,y)的光线与正x轴形成角度θ,(逆时针转动为正)

为了弥补这一点,你需要从弧的角度减去π/ 2 ,以便在三角计算中使用它们。