2011-10-19 7 views
1

私は2つのポイントを持っています.1つは常に起点(0,0)にあり、もう1つは世界のどこにでもあります。私はそれらの間の角度をそれぞれ横軸にしたいと思います。水平軸に対応する2点間の角度を見つけるか?

:私は右の三角形を構築し、私が欲しい不足している角度を把握するためにsohcahtoaを使用しますが、第二の点は、この場合のように異なる象限にあるとき、それは少し醜いなるだろう上記で

 |  2 
    | /
    | /
    |/ 
    |/ 
    |/ a 
    ---1-------------- (horizontal axis) 
    | 

    a = angle (~50 degrees, counter clockwise) 

2 | 
\ | 
\ | 
    \ | 
    \a|a 
    \|a 
    ---1-------------- 
    | 
    | 

    a = angle (~135, counter clockwise) 

私はちょうど2番目のポイントが何象限にあるかによっていくつかの異なるケースに終わります。私はずっと単純で一般的な解決策が必要であると思っています。これは、原点の水平軸に対応する、円の端の点とその中心の間の角度を求めるようなものです。

どうすればよいですか?

答えて

8

ほとんどのプログラミング言語/ APIは、角度がで、が象限を考慮する関数atan2()を提供します。ただそれを使用してください。

0

まず、2点を結ぶ直線の方程式を見つけたい:

は、p =(X0、Y0)は、第2の点とします。 答えがx = 0の場合は90度です。 そうでなければ、mをy0/x0とする。

のy = M(X-X0)+ Y0

TG^-1(すなわちarctgある)Mの角度です。

また、(x0、y0)==(0,0)よりも角度が定義されていない場合、

関連する問題