3

ここで同様の質問を見たことがありますが、数学を機能させることができません。

円周上に 2 つの既知の点 (x1、y1、x2、y2) があり、円の中心が cx、cy である円があります。

cx,cy に立って点 x1,y1 を見ている場合、x2,y2 に向くにはどの方向を向く必要があるか、どうすればわかりますか?

これまでのところ、各ポイントへの角度を計算しています

アタン((cx-x1) / (cy-y1)) アタン((cx-x2) / (cy-y2))

次に、mod を使用して両方が -2pi と 2pi の間にあることを確認して、単純な減算を試みましたが、奇妙な答えがいくつか得られました。中心点を通る水平線の上下に 2 つの点があると、奇妙な結果が生じるようです。

しかし、正直に言うと、私は頭が痛いほど多くのことを試しました! 一度だけ実行されるため、計算的に高速なソリューションである必要はありません。前もって感謝します。

4

2 に答える 2

5

答えは の記号で与えられます(x1-cx)(y2-cy) - (y1-cy)(x2-cx)

証拠:

X軸から反時計回りに測定された角度として表されるからへAの方向をとする。からへの方向であり、同じように表現されます。そして円の半径になります。Thenは、C から見て、が 0 と pi の間、または -2pi と -pi の間にある場合 (つまり、が正の場合) の右側にあり、-pi と 0 の間、または pi と 2pi の間にある場合は左側にあります。 (つまり、が負の場合)。C(x1,y1)BC(x2,y2)r(x2,y2)(x1,y1)A-Bsin(A-B)A-Bsin(A-B)

今、

(x1,y1)=(Cx + r cos A, Cy + r sin A) 
(x2,y2)=(Cx + r cos B, Cy + r sin B)

そう

  (x1-Cx)(y2-Cy) - (y1-Cy)(x2-Cy) 
= (r cos A)(r sin B) - (r sin A)(r cos B)    
= - r^2 (sin A cos B - cos A sin B)
= - r^2 (sin (A-B))

と反対の符号を持っていsin (A-B)ます。

于 2013-11-14T21:46:36.000 に答える
0

A1からのベクトルと横軸の間の角度を 、からのベクトル(cx, cy)と横軸の間の角度を としましょう。座ってその点を見ると、2 つのベクトル間の角度が より小さい場合にのみ点は右側にあり、角度が よりも大きい場合にのみ左側にあります。(x1, y1)A2(cx, cy)(x2, y2)(cx, cy)(x1, y1)(x2, y2)pipi

正の角度の正弦は から が正で、 から0pi負であるpiため2*pi、点は右 iffsin(A2-A1) > 0と左 iff にあるということになりますsin(A2-A1) < 0

通常の三角恒等式を使用すると、次のようになります。

sin(A2-A1) = sin(A2) * cos(A1) - sin(A1) * cos(A2)

次に、正弦と余弦をその式でデカルト座標に置き換えるだけです。点が円上にあるため、分母は因数分解されます。

したがって、 の符号は の符号sin(A2-A1)と同じです(x2-cx)*(y1-cy) - (x1-cx)*(y2-cy)

于 2013-11-14T22:05:35.117 に答える