void njInterpolateQuaternion( qua1, qua2, rate, qua )
const NJS_QUATERNION *qua1
const NJS_QUATERNION *qua2
Float rate
NJS_QUATERNION *qua
qua1 クォータニオン1 qua2 クォータニオン2 rate 補完レイト(0〜1) qua 結果のクォータニオンの格納先
なし
与えられた二つのクォータニオンを rate の位置で補完したクォータニオンを 求めます。rate の範囲は 0 〜 1 で、0 のとき qua1、1 のとき qua2 に一致します。
qua1 の回転状態から、qua2 の回転状態へは、ある一つのベクトル N の 周りのある角度θの回転で至ることができます。
(ただし、θは0〜180度とします。)
qua に返される回転は、qua1 の回転状態から、ベクトルNの周りにθ以下の 角度で回転した回転状態に対応するクォータニオンです。
そのときの回転角度をf(rate) で表すと、
f(rate) :単調増加関数 f(0) =0 f(1) =θ
となります。
Ninja で扱うクォータニオンは長さが1でなければなりません。 従って、qua1, qua2 の長さは1でなければなりません。 結果の qua は自動的に長さが1になります。
njCreateQuaternion() 与えられた回転軸の周りの回転を表すクォータニオンを作成 njQuaternionEx() クォータニオン表現で回転を施す。