void njRotate( *m, *v, ang )
NJS_MATRIX *m
NJS_VECTOR *v
Angle ang
*m 被演算マトリクス *v 任意軸のデータ ang 回転角度
なし
マトリクスmに任意軸回りの回転を加えます。 引数mがNULLの場合はカレントマトリクスを対象とします。
原点を通り、方向ベクトルがv(1,1,1)である軸を中心に90度回転を加えます。 回転によって原点は移動しません。 NJS_MATRIX stack[10]; NJS_VECTOR v; v.x = 1.f; v.y = 1.f; v.z = 1.f; njInitMatrix(stack, 10); njPushMatrix(NULL); njRotate(NULL, &v, NJM_DEG_ANG(90)); njPopMatrix(1);
マトリクスを[M]、回転に対応するマトリクスを[R]とすると、[M]=[M][R]となります。 マトリクスが乗算される順序に注意してください。