SIRotation

Object Hierarchy | 関連する C++クラス:CRotation

説明

このオブジェクトは、3D空間での回転を表します。X、Y、Z のオイラー角、クォータニオン、および3×3行列の表示方法がサポートされています。

注:X、Y、Z のオイラー角として表される場合、値は常に角度ではなくラジアンで表示されます。

メソッド

Copy GetAxisAngle GetAxisAngle2 GetMatrix3
GetQuaternion GetXYZAngles GetXYZAnglesValues GetXYZAnglesValues2
Invert InvertInPlace Mul MulInPlace
SetFromAxisAngle SetFromMatrix3 SetFromQuaternion SetFromXYZAngles
SetFromXYZAnglesValues SetFromXYZAxes SetIdentity  
       

プロパティ

Quaternion RotX RotY RotZ
XYZAngles      
       

JScript の例

/*
        Demonstrates different representations of a rotation: 
        -As a SIRotation object
        -As a 3x3 matrix
        -As a 4x4 matrix
        -As a SITransformation object
        -As a SIVector3 object
*/
var oSIRotation = XSIMath.CreateRotation( 
                                XSIMath.DegreesToRadians( 45 ),
                                XSIMath.DegreesToRadians( 30 ),
                                XSIMath.DegreesToRadians( 15 ) ) ;
oSIMatrix3 = XSIMath.CreateMatrix3() ;
oSIRotation.GetMatrix3( oSIMatrix3 ) ;
oSIMatrix4 = ConvertMatrix3ToMatrix4( oSIMatrix3 ) ;
oSITransformation = XSIMath.CreateTransform() ;
oSITransformation.SetMatrix4( oSIMatrix4 ) ;
var oSIVector3 = XSIMath.CreateVector3() ;
oSITransformation.GetRotationXYZAngles( oSIVector3 ) ;
// Prove that we haven't lost the original rotation values
Application.LogMessage( "Rotation " + 
                        XSIMath.RadiansToDegrees( oSIVector3.X ) + ", " +
                        XSIMath.RadiansToDegrees( oSIVector3.Y ) + ", " +
                        XSIMath.RadiansToDegrees( oSIVector3.Z ) ) ;
// Output (notice very small rounding problems that occur
// when dealing with pi and trig functions):
//INFO : Rotation 45, 29.999999999999996, 14.999999999999998
function ConvertMatrix3ToMatrix4( oM3 )
{
        // Helper function to convert 3x3 rotation matrix
        // to equivalent 4x4 transformation matrix:
        //
        // r11 r12 r13 0
        // r21 r22 r23 0
        // r31 r32 r33 0
        // 0   0    0  1
        oSIMatrix4 = XSIMath.CreateMatrix4(
                oM3(0,0), oM3(0,1), oM3(0,2), 0,
                oM3(1,0), oM3(1,1), oM3(1,2), 0,
                oM3(2,0), oM3(2,1), oM3(2,2), 0,
                0,        0,        0,        1 ) ;
        return oSIMatrix4 ;     
}

関連項目

SIVector3 SIMatrix3 SIMatrix4 SIRotation SITransformation SIQuaternion XSIMath.DegreesToRadians