|
Adobe Flash非公式テクニカルノート
Matrix3D()コンストラクタ
ID: FN1005001 |
Platform: All |
Version: CS4/ActionScript 3.0 |
Runtime: Flash Player 10/AIR 1.5 |
Matrix3Dクラス |
パッケージ
|
flash.geom
|
継承
|
Matrix3D → Object
|
Matrix3D()コンストラクタ |
文法
|
public function Matrix3D(elements:Vector.<Number> = null)
|
概要
|
3次元空間における変換行列となるMatrix3Dインスタンスを生成する。
|
引数
|
elements:Vector.<Number> ― 4次正方行列の成分を表す16エレメントから成る数値(Number)ベース型のVectorオブジェクト。Vectorオブジェクトには、正方行列から列ごとに4成分ずつ順に計16エレメントを納める。
|
説明
3次元空間における座標変換のための4次正方行列となるMatrix3Dインスタンスを生成します。引数がないときは、つぎのような単位行列を表すMatrix3Dインスタンスが生成されます。
|
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
つぎのような16成分値から成る4次正方行列を、Matrix3Dインスタンスで生成したいとします。
|
a11 |
a12 |
a13 |
a14 |
|
a21 |
a22 |
a23 |
a24 |
a31 |
a32 |
a33 |
a34 |
a41 |
a42 |
a43 |
a44 |
その場合、コンストラクタメソッドの引数として渡すVectorオブジェクトには、数値エレメントをつぎのような列ごとの順序で納めます[*2]。
a11, a21, a31, a41, a12, a22, a32, a42, a13, a23, a33, a43, a14, a24, a34, a44
なお、すでに生成されたMatrix3Dインスタンスの16成分値にアクセスするには、Matrix3D.rawDataプロパティを用います。また、Matrix3D.recompose()メソッドは、平行移動と回転、および伸縮の情報をVector3Dオブジェクトにして、それらが納められたVectorオブジェクトによりMatrix3Dインスタンスを書替えます。平行移動と回転、および伸縮の情報がVector3Dオブジェクトで納められたVectorオブジェクトを取出すには、Matrix3D.decompose()メソッドを使います。
[*1] [ヘルプ]の[Matrix3D]クラスの「Matrix3D()コンストラクタ」の項には、単位行列について「メインの対角線」の成分が1だと説明されています。原文は"main diagonal"という語を用いており、通常は「主対角線」と訳されます。主対角線とは「行列の一番左上から一番右下にかけての対角線」を指します。
[*2] [ヘルプ]で前出注[*1]の「Matrix3D()コンストラクタ」の説明を見ると、行列の「4つのエレメントごとに1行または1列になります」とあります。しかし、本文に述べたとおり、Vectorオブジェクトの数値エレメントは、4次正方行列から4つずつ行ではなく列の順で納めます。
|
参考
[ActionScript 3.0言語およびコンポーネントリファレンス] > [Matrix3D]「Matrix3D()コンストラクタ」
作成者: 野中文雄
作成日: 2010年5月5日
Copyright ©
2001-2010 Fumio Nonaka. All rights reserved.
|