2016-04-07 67 views
0

我有這個小提琴: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度,這是正確的?

或者我不正確地解釋整個事情?

+0

直接從中心點東邊開始 –

回答

2

D3的arc.startAngle()被指定爲:

的角度以弧度指定; 0對應於12點鐘(負y)並且順時針方向進行,重複2π。

相反,trigonometric functions on the unit circle定義如下:

離原點的射線(0,0)到(x,y)的使一個角度從正x軸θ, (這裏轉彎逆時針爲正)

爲了彌補這一點,你需要從圓弧的角度減去π/2在三角CALCULAT使用它們離子。

+0

但是,這仍然意味着增加角度將逆時針移動點。另一種方法是使用(y,x)座標系,以便例如角度爲a的點,距離r爲y = r * cos(a),x = r * sin(a)。 – dmuir

+0

@dmuir這是不正確的。當使用屏幕方向時,y軸指向下方,這意味着當順時針轉動**時,正x軸的角度將增加。爲此,角度值的增加會順時針移動點。查看更新後的[JSFiddle](http://jsfiddle.net/3t9xLf1r/),它將角度增加0.25,0.5,0.75和1.0 *'Math.PI' ;.點的位置由此順時針旋轉。 – altocumulus

相關問題