ユニティクォータニオンとベクトルの乗算とその操作規則



Unity Quaternion Vector Multiplication



役割:クォータニオンとベクトルの乗算は、このクォータニオンに従ってこのベクトルを回転させることによって得られる新しいベクトルを表します。

例:ベクトルvector3(0,0,10)、Y軸を中心に90度回転した場合、新しいベクトルはvector3(10,0,0)です。



団結して次のように表現されます。



操作の結果は次のとおりです。

複合回転は、クォータニオンを順番に乗算し、最後にベクトルを乗算したものです。



さらにいくつかのケース:

操作プロセスを理解したい場合は、見下ろすことができます。

クォータニオンの4つの値は次のようにカウントされます:(w、x、y、z)、 ユニティのクォータニオンの4つの数値は(x、y、z、w)であり、以下の計算プロセスには影響しません。

任意の軸を中心に任意の角度で回転したクォータニオンは次のとおりです。

次に、Y軸を中心に90度回転したクォータニオンは次のようになります。 q =(√2/ 2、0、√2/ 2、0)

(( Unityでは、順序が(x、y、z、w)であるため、このQuaternion.Euler(0,90,0)はデバッグされます(0、√2/ 2、0、√2/ 2)。以下。計算プロセス )。

クォータニオンにベクトルを掛ける規則は次のとおりです。q* v =(q)*(v)*(q-1)

その中で:

q =(√2/ 2、0、√2/ 2、0);

v、vベクトルをクォータニオン(0、v)に展開します。つまり、v =(0、0、0、10)

Q-1はクォータニオンqの逆であり、反転プロセスは次のとおりです。

  • 共役四元数:q * =(w、-x、-y、-z)、つまり(√2/ 2、0、-√2/ 2、0)
  • クォータニオンのモジュラス:N(q)=√(x ^ 2 + y ^ 2 + z ^ 2 + w ^ 2)、つまり、クォータニオンから原点までの距離。結果は1です。
  • クォータニオンの逆数:q−1 = q * / N(q)、つまりq−1 =(√2/ 2、0、-√2/ 2、0)

q * v = q * v * q-1 =(√2/ 2、0、√2/ 2、0)*(0、0、0、10)*(√2/ 2、0、-√2/ 2、0);

クォータニオン乗算式:

上記の式に従って計算します。q* v = q * v * q-1

(√2/ 2、0、√2/ 2、0)*(0、0、0、10)=(0.5√2、0、5√2)

(0.5√2、0、5√2)*(√2/ 2、0、-√2/ 2、0)=(0.10.0.0);

結果のクォータニオン(0,10,0,0)は、newV(10,0,0)であるベクトル(0、newV)に変更されます。