2つのベクトルaとbの間の角度を計算したいと思います。これらが原点にあると仮定しましょう。これはで行うことができます
theta = arccos(a . b / |a| * |b|)
ただし、arccosは[0、pi]の角度を提供します。つまり、180度を超える角度は提供されません。これは、私が望むものです。では、ベクトルが180度のマークを超えたことをどのようにして知ることができますか?2Dでは、ベクトルの1つにあるy成分の符号によって、ベクトルがどの象限にあるかを簡単に決定できます。しかし、3Dでそれを行う最も簡単な方法は何でしょうか。
編集:私は質問を一般的に保ちたかったのですが、ここに行きます。私はこれをcでプログラミングしており、角度を取得するために使用するコードは、theta = acos(dot(a, b)/mag(a)*mag(b))
プログラムで方向を決定する方法です。