サイトトップ

Director Flash 書籍 業務内容 プロフィール

Adobe Flash非公式テクニカルノート

Matrix3Dクラス

ID: FN0810003 Product: Flash Platform: All Version: CS4/ActionScript 3.0

パッケージ flash.geom
クラス public class Matrix3D
継承 Matrix3D → Object

説明
Matrix3Dクラスは変換行列を表し、3次元(3D)のDisplayObjectの位置や方向を定めます。この行列は変換の機能を果たし、移動(x、y、z軸上の位置変更)や回転、拡大・縮小(サイズ変更)などを実行します。Matrix3Dクラスはまた透視投影も行い、3次元空間の点を2次元(2D)の視点に移します。

ひとつの行列にはいくつもの変換を組合わせることができ、それらの変換を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が変換されると、そのオブジェクトの回転のキャッシュは無効になります。

[訳者注*1] [ヘルプ]では、Matrix3Dの行列は下図のように表記されています。しかし、本文の説明と合いませんので、前掲図のようにx、y、z軸の記載位置を変え、拡大・縮小の語を加えて修正しました。

[追記 2009/01/08] なお、英語原文では、2009年1月6日付けで、以下の図に差替えられました。

Player
ActionScript 3.0/Flash Player 10。

出典
[ActionScript 3.0 Language and Components Reference] > [Matrix3D]


作成者: 野中文雄
更新日: 2009年01月08日: [訳者注*1]に[追記]。
作成日: 2008年10月14日


Copyright © 2001-2009 Fumio Nonaka.  All rights reserved.