0

私はこのフィドルを持っています:http://jsfiddle.net/wQXCL/427/円の周囲に要素を正しく配置できないのはなぜですか?

素晴らしいです。円弧の終点に画像を配置します。しかし、これは画像を配置するときに90度(Math.PI/2)離れたからです。それは、円上の点を動作するように式のように見える私にはhttp://jsfiddle.net/wQXCL/428/

::離れて90度を服用する前に

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軸からθ角度をなします、

あなたは三角calculatでそれらを使用するように円弧の角度からπ/2を引く必要があり、これを補うために(反時計回りの回転が正の場合)イオン。

+0

しかし、それでも角度を大きくすると、ポイントが時計回りに移動します。代わりに、(y、x)座標系を使用することができます。たとえば、角度aの位置rはy = r * cos(a)、x = r * sin(a)です。 – dmuir

+0

@dmuirこれは間違っています。画面の向きを使用する場合、y軸は下を指しています。これは、時計回りに**回転すると、正のx軸からの角度が増加することを意味します。このため、角度の値を大きくすると、ポイントが時計回りに移動します。角度を0.25,0.5,0.75,1.0 * Math.PI'で増やした最新の[JSFiddle](http://jsfiddle.net/3t9xLf1r/)を見てください。これにより、ポイントの位置は時計回りに回転します。 – altocumulus

関連する問題