ベクトルのxとzの値が同じであるという事実を知っていれば、 は、y平面の違いから '垂直'角度を測定することにのみ関係しています。ドットプロダクトの計算と比較してですか?次のように内積の方法を使用して1つの平面内の2つのベクトルの間の角度を効率的に取得するには?
私の現在のコードは次のとおりです。
float a_mag = a.magnitude();
float b_mag = b.magnitude();
float ab_dot = a.dot(b);
float c = ab_dot/(a_mag * b_mag);
// clamp d to from going beyond +/- 1 as acos(+1/-1) results in infinity
if (c > 1.0f) {
c = 1.0;
} else if (c < -1.0) {
c = -1.0;
}
return acos(c);
私は、これらの平方根
「acos(1)== 0」と「acos(-1)== PI」という微妙なことはどちらも無限大ではありません。関数 'acos'は' [-1、1] 'の間隔で定義され、この間隔を越えて' acos'は* undefined *です。 – 0605002
説明をありがとう! – kbirk
私は非常に基本的な質問をするつもりです。あなたは角度が必要ですか?非常に頻繁に、私は角度を取得すると、私は直ちにそれをベクトルに戻すか、まっすぐな代数的解決法が私がしていることに対してより良く働くことを見出します。 –