v3.5
X,Y,Z のオイラー角(ラジアン)を使用してクォータニオンを設定します。
SIQuaternion.SetFromXYZAngleValues( Double in_dX, Double in_dY, Double in_dZ ); |
SIQuaternion.SetFromXYZAngleValues( x, y, z ); |
// Define 2 quaternion orientations using degrees radian var qA = XSIMath.CreateQuaternion(); qA.SetFromXYZAngleValues( XSIMath.DegreesToRadians(0), XSIMath.DegreesToRadians(0), XSIMath.DegreesToRadians(90) ); var qB = XSIMath.CreateQuaternion(); qB.SetFromXYZAngleValues( XSIMath.DegreesToRadians(0), XSIMath.DegreesToRadians(0), XSIMath.DegreesToRadians(180) ); // Do a sperical linear interpolation 50% between A & B // and log results. var qC = XSIMath.CreateQuaternion(); qC.Slerp( qA, qB, 0.5 ); Application.LogMessage( "Q[" + qC.w + "," + qC.x + ", V(" + qC.y + "," + qC.z + ")" + "]" ); var aXYZ = new VBArray(qC.GetXYZAngleValues2()).toArray(); Application.LogMessage( "R(" + XSIMath.RadiansToDegrees(aXYZ[0]) + "," + XSIMath.RadiansToDegrees(aXYZ[1]) + "," + XSIMath.RadiansToDegrees(aXYZ[2]) + ")" ); |