Matrix3 クラスは、4x3 の 3D 変換行列オブジェクトを実装します。
変換行列は 3D 同次行列で、一般的にオブジェクトの座標系と変換を保持するのに使用されます。
ゼロ行列を作成します。(matrix3 [0,0,0] [0,0,0] [0,0,0] [0,0,0])
単位行列を作成します。(matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])
ヨー、ピッチ、ロール角度の指定による回転変換として使用する Matrix3 値を作成および返します。角度は度で表されます。
与えられたポイントによって指定された法線を Z 軸とする Matrix3 値を作成および返します。Matrix3 値の変換部分は[0,0,0]です。スケール部分のコンポーネントは、point3 値の正規化に必要な値の逆数です。
Matrix3 は行列の回転コンポーネントとして、Quaternion、AngleAxes、EulerAngles に変換可能です。
Matrix3 の行を Point3 として返します。インデックスで有効な範囲は 1 ~ 4 です。
Matrix3 の行を Point3 に設定します。インデックスで有効な範囲は 1 ~ 4 です。
<matrix3>.row1: Point3 <matrix3>.row2: Point3 <matrix3>.row3: Point3 <matrix3>.row4: Point3 <matrix3>.translation: Point3
<matrix3>.rotationpart: Quat, read-only <matrix3>.translationpart: Point3, read-only <matrix3>.scalerotationpart: Quat, read-only <matrix3>.scalepart: Point3, read-only
新しい値は、matrix3 の入力値のコピーを含み、入力値から独立した値になります。
等価比較式をオリジナルおよびコピーの値で使用すると常に false が返されます。
2 つの Matrix3 値の等しさを正しく比較するには、それらの 4 つのコンポーネントが別個に比較されなくてはなりません。2 つの値は文字列に変換され、文字列として比較されます。あるいは、1 つの Matrix3 値がもう 1 つの逆数で乗算され、単位行札になるか試されます。
特定のスペースに変換された変換行列を返します。たとえば、ある回転を別の座標系で適用したいとします。これには、通常の場合座標系のスペースに変換して、その座標系で変換を行います。このメソッドは行列 <transform_matrix3> を <space_matrix3> に変換します。結果の matrix3 値は space_matrix3 * transform_matrix3 * inverse(space_matrix3) です。
単位行列への入力行列を設定します。パラメータが単独の行列の場合は、この関数により単位行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は単位行列で置き換えられます。
ゼロ行列への入力行列を設定します。パラメータが単独の行列の場合は、この関数によりゼロ行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値はゼロ行列で置き換えられます。
行列の「バイアスのかかっていない」直交化への入力行列を設定します。直交行列では、各軸間の角度が 90 度です(斜めにゆがんでいません)。パラメータが単独の行列の場合、この関数により直交行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は直交行列の値で置き換えられます。
入力行列に順次増加する解釈変換を適用します。これは、変換により右で乗算するのと同じです。matrix3 パラメータが単独の行列の場合は、この関数により変換された行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は変換された行列の値で置き換えられます。
-- all angles in degrees --mapped functions rotateX <matrix3> <number> rotateY <matrix3> <number> rotateZ <matrix3> <number> rotate <matrix3> <quat>
入力行列に順次増加する回転変換を適用します。これは、変換により右で乗算するのと同じです。matrix3 パラメータが単独の行列の場合は、この関数により変換された行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は変換された行列の値で置き換えられます。
入力行列に順次増加するスケール変換を適用します。これは、変換により右で乗算するのと同じです。<boolean> が true の場合は、変換コンポーネントはスケールされます。<boolean> が false の場合は、変換コンポーネントは影響を受けません。当初 3ds Max が書かれたときには、このメソッドのコードにバグがあったため、行列の変換部分がスケールされませんでした。行列をスケールしても一番下の行がスケールされませんでした。このため、スケールの基準は常にオブジェクトのローカル原点である一方で、ワールド軸がスケールされました。このバグが発見されたとき、原因となっているコードに依存する部分があることがわかりました。不適正に動作している部分に依存する既存のコードを壊してしまうことになるため、簡単に修正することができませんでした。この問題を解決するためブール値のパラメータが追加されました。このパラメータを true に設定すると、変換コンポーネントは正しくスケールされます。指定しない場合、ブール値の既定値 false が適用され、コードは従来の方法で動作します。matrix3 パラメータが単独の行列の場合は、この関数により変換された行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は変換された行列の値で置き換えられます。
入力行列に順次増加する移動変換を適用します。これは、変換により左で乗算するのと同じです。matrix3 パラメータが単独の行列の場合は、この関数により変換された行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は変換された行列の値で置き換えられます。
-- all angles in degrees -- mapped functions preRotateX<matrix3> <number> preRotateY<matrix3> <number> preRotateZ<matrix3> <number> preRotate<matrix3> <quat>
入力行列に順次増加する回転変換を適用します。これは、変換により左で乗算するのと同じです。matrix3 パラメータが単独の行列の場合は、この関数により変換された行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は変換された行列の値で置き換えられます。
入力行列に順次増加するスケール変換を適用します。これは、変換により左で乗算するのと同じです。<boolean> が true の場合は、変換コンポーネントはスケールされます。<boolean> が false の場合は、変換コンポーネントは影響を受けません。指定しない場合、ブール値の既定値 false が適用されます。matrix3 パラメータが単独の行列の場合は、この関数により変換された行列が返されます。パラメータが行列の配列の場合、この関数は OK を返します。いずれの場合も、入力 matrix3 の値は変換された行列の値で置き換えられます。
詳細は、「EulerAngles 値」を参照してください。