EulerAngles 値
EulerAngles クラスは、各軸において度単位の回転角度を使用する 3 次元空間での方向の表示を提供します。
角度は 360 度より大きくなるため、複数の回転を指定する必要があります。
回転は右回りのルールに従います。
コンストラクタ:
eulerAngles <x_degrees> <y_degrees> <z_degrees>
<quat> as eulerAngles
<angleAxis> as eulerAngles
<matrix3> as eulerAngles
eulerAngle として回転コンポーネントを抽出します。
演算子
<eulerAngles> == <eulerAngles>
<eulerAngles> != <eulerAngles>
<eulerAngles> as <class>
eulerAngles は、Matrix3、Quaternion、angleAxis の各値に変換できます。
プロパティ
<eulerAngles>.x: Float
<eulerAngles>.y: Float
<eulerAngles>.z: Float
浮動小数点の角度単位における各主軸における回転です。
メソッド
eulerAngles 値の新しいコピーを作成します。
新しい値には eulerAngles の入力値のコピーが入っています。新しい値は、入力 eulerAngles 値から独立しています。
例:
|
newEulerAngles = copy oldEulerAngles
|
random <eulerAngles> <eulerAngles>
eulerAngles 間のランダム回転ですが、quat Slerp を使用するので、複数の回転角を失います。
quatToEuler <quat> order:<eulertype_integer>
eulerToQuat <eulerAngle> order:<eulertype_integer>
Quat とオイラー角度の値を変換します。オプションの順序パラメータには、角度の適用順序を指定します。指定しない場合は、XYZ の順序が使用されます。値には次のいずれかを使用できます。
1 - XYZ
2 - XZY
3 - YZX
4 - YXZ
5 - ZXY
6 - ZYX
7 - XYX
8 - YZY
9 - ZXZ
[キー入力変換](Transform Type-In)ダイアログ ボックスに表示された、特定の Quaternion のオイラー値を返します。
3ds Max 2008 以降 で使用可能です。
従来、Avguard 機能拡張として提供されていた機能です。
quatArrayToEulerArray <quat array>
Quat 配列からのスムーズ オイラー値の配列を返します。
3ds Max 2008 以降 で使用可能です。
従来、Avguard 機能拡張として提供されていた機能です。
一連の quat 値を eulerAngle 値に変換するとき、eulerAngle 値で符号反転が発生する可能性があります。これは、さまざまな eulerAngle
値によって 1 つの quat 値を表現できるためです。この符号反転は、eulerAngles/quat 比を基準に検出できます。eulerAngles/quat
比は、Quaternion 空間での角度差に対する eulerAngles 空間での角度差を表します。この比率が eulerAngles 変換に対する 2 つの quat
間の回転 PI より大きい場合、このメソッドは、eulerAngles 変換に対する 2 つの quat 間の eulerAngles/quat 角度比を浮動小数点で返します。反転の実際の検出は、変換中の回転の量に依存します。回転の量が少ないほど、検出が正確になります。
以下のメソッドは、3ds Max 2012 より前のバージョンでは正しく機能しないことに注意してください。
<float>GetEulerQuatAngleRatio <quat1> <quat2> <array1> <array2>
<float>GetEulerQuatAngleRatio <quat1> <quat2> <eulerAngle1> <eulerAngle2>
<float>GetEulerQuatAngleRatio <quat1> <quat2> &<var1> &<var2>
関数は eulerAngles/Quat 比を Float として返します。
最初の 2 つの引数は、入力として使用される Quat です。1 番目の quat は以前の回転で、2 番目の quat は現在の回転です。
3 番目と 4 番目の引数は、以前と現在の変換された回転角度です。これらは出力として使用されます。
1 番目のサインでは、結果のオイラー角度の .x、.y、.z コンポーネントは、配列要素 1、2、3 に格納されます。
2 番目のサインでは、渡される引数 <eulerAngle1> と <eulerAngle2> は、変換後の値に変更されます。
3 番目のサインでは、引数 3 と 4 として渡される EulerAngle が参照で書き戻されます。
<float>GetEulerMatAngleRatio <mat1> <mat2> <array1> <array2>
<float>GetEulerMatAngleRatio <mat1> <mat1> <eulerAngle1> <eulerAngle2>
<float>GetEulerMatAngleRatio <mat1> <mat1> &<var1> &<var2>
このメソッドは getEulerQuatAngleRatio() メソッドと同等ですが、入力として Quat 値ではなく matrix3 値を使用します。
最初の 2 つの引数は、以前と現在の方向を記述する matrix3 の入力です。
3 番目と 4 番目の引数は、変換された以前と現在のオイラー角度です。
1 番目のサインでは、.x、.y、.z コンポーネントは、配列の 1 番目、2 番目、3 番目の要素に格納されます。
2 番目のサインでは、渡された <eulerAngle1> および <eulerAngle2> を変更して出力のオイラー角度が格納されます。
3 番目のサインでは、eulerAngle が 3 番目と 4 番目の参照渡し引数に書き込まれます。
例:
|
q1 = (quat 0.412759 0.00141638 -0.113167 0.903782)
q2 = (quat -0.150577 -0.378993 0.176638 0.895818)
a1 = #(0,0,0)
a2 = #(0,0,0)
getEulerQuatAngleRatio q1 q2 a1 a2
-->0.583444
a1;a2
-->#(-48.5478, 5.21315, 11.922)
-->#(11.509, 47.0722, -17.2825)
a1 = #()
a2 = #()
getEulerQuatAngleRatio q1 q2 a1 a2
-->0.583444
a1;a2
-->#(-48.5478, 5.21315, 11.922)
-->#(11.509, 47.0722, -17.2825)
a1 = eulerAngles 0 0 0
a2 = eulerAngles 0 0 0
getEulerQuatAngleRatio q1 q2 a1 a2
-->0.583444
a1;a2
-->(eulerAngles -48.5478 5.21315 11.922)
-->(eulerAngles 11.509 47.0722 -17.2825)
getEulerQuatAngleRatio q1 q2 &r1 &r2
-->0.583444
r1;r2
-->(eulerAngles -48.5478 5.21315 11.922)
-->(eulerAngles 11.509 47.0722 -17.2825)
m1 = (quat 0.412759 0.00141638 -0.113167 0.903782) as matrix3
m2 = (quat -0.150577 -0.378993 0.176638 0.895818) as matrix3
a1 = #(0,0,0)
a2 = #(0,0,0)
GetEulerMatAngleRatio m1 m2 a1 a2
-->0.583444
a1;a2
-->#(-48.5478, 5.21315, 11.922)
-->#(11.509, 47.0722, -17.2825)
a1 = #()
a2 = #()
GetEulerMatAngleRatio m1 m2 a1 a2
-->0.583444
a1;a2
-->#(-48.5478, 5.21315, 11.922)
-->#(11.509, 47.0722, -17.2825)
a1 = eulerAngles 0 0 0
a2 = eulerAngles 0 0 0
GetEulerMatAngleRatio m1 m2 a1 a2
-->0.583444
a1;a2
-->(eulerAngles -48.5478 5.21315 11.922)
-->(eulerAngles 11.509 47.0722 -17.2825)
GetEulerMatAngleRatio m1 m2 &r3 &r4
-->0.583444
r3;r4
-->(eulerAngles -48.5478 5.21315 11.922)
-->(eulerAngles 11.509 47.0722 -17.2825)
|