Ninja Library - マトリクス関数

njInterpolateQuaternion

二つのクォータニオンを補完したクォータニオンを算出

書式

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() クォータニオン表現で回転を施す。

njInterpolateQuaternion
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000