サイトトップ

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

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.