EulerAngles 値

> 基本的なデータ値 > 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

浮動小数点の角度単位における各主軸における回転です。

   

メソッド

copy <eulerAngles>

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

   

quatToEuler2 <quat>

[キー入力変換](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)

関連事項