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