Ninja Library - マトリクス関数

njQuaternionEx

クォータニオン表現で回転を施す。

書式

void njQuaternionEx( *qua )
NJS_QUATERNION *qua

引数

qua   クォータニオンデータのポインタ

戻り値

なし

解説

クォータニオン表現での回転操作をカレントマトリックスに施します。

単位ベクトル N=(Nx,Ny,Nz) の周りの角度 ang の回転に対応するクォータニオンは 次のようにして作成できます。

njCreateQuaternion( Nx, Ny, Nz, ang, &qua );


用例

/*
    ベクトル N = (Nx,Ny,Nz)を中心に角度 ang の回転を施す。
*/
void RotateByQuaternion( Float Nx, Float Ny, Float Nz, Angle ang )
{
    NJS_QUATERNION qua;

    njCreateQuaternion( Nx, Ny, Nz, ang, &qua );

    njQuaternionEx(&qua);
}

備考

カレントマトリクスを[M]、クォータニオンに対応するマトリクスを[Q]とすると、

[M]=[M][Q]

と、なります。マトリクスを乗算する順序に注意して下さい。


参照

njCreateQuaternion() 与えられた回転軸の周りの回転を表すクォータニオンを作成
njCreateQuaternionV() 与えられた回転軸の周りの回転を表すクォータニオンを作成
njQuaternionEx2() クォータニオン表現で回転

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