SIRotation

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