Adobe Flash非公式テクニカルノート Matrix3Dクラス
説明 ひとつの行列にはいくつもの変換を組合わせることができ、それらの変換を3次元DisplayObjectに1度で適用できます。たとえば、ひとつの行列を3次元座標に適用するだけで、回転して移動することも可能です。 DisplayObjectのzプロパティや、回転あるいは拡大・縮小のプロパティを明示的に設定すれば、対応するMatrix3Dオブジェクトが自動的に作成されます。 3次元DisplayObjectのMatrix3Dオブジェクトには、transform.matrix3dプロパティを通じてアクセスできます。2次元のオブジェクトは、Matrix3Dオブジェクトをもっていません。 2次元のオブジェクトのzプロパティの値は0で、matrix3Dプロパティの値はnullです。 [注釈] 同じMatrix3Dオブジェクトをふたつの異なるDisplayObjectに設定すると、ランタイムエラーが生じます。 Matrix3Dクラスは、4×4の正方行列です。4行4列の数の並びには、変換用のデータが収められます。行列の最初の3行は、3次元の各軸(x、y、z)のデータをもちます。移動の情報は、最後の列にあります。方向と拡大・縮小のデータは、最初の3列です。拡大・縮小の要素は、その最初の3列のうち対角線の数値です。Matrix3Dの各成分は、つぎのように示されます[*1]。 数学の行列について理解しなくても、Matrix3Dクラスは使えます。クラスには変換や投影の処理を簡単に行うための特別なメソッドとして、appendTranslation()やappendRotation()、interpolateTo()などが用意されているからです。 DisplayObjectは、軸の回転のプロパティをキャッシュして、軸ごとのそれぞれの回転を保持し、異なる回転の組合わせを管理します。Matrix3Dオブジェクトのメソッドが呼出されてDisplayObjectが変換されると、そのオブジェクトの回転のキャッシュは無効になります。
Player 出典 作成者: 野中文雄 Copyright © 2001-2009 Fumio Nonaka. All rights reserved. |
||||||||||||