| パッケージ | flash.geom | 
  
    | クラス | public class Matrix | 
  
    | 継承 | Matrix → Object | 
説明
Matrixクラスは変換行列を表し、ひとつの座標空間上の点を、他の座標空間にどう移すかを定めます。さまざまな表示上の変換が、DisplayObjectに対して実行できます。それには、MatrixオブジェクトをTransformオブジェクトのmatrixプロパティに適用し、さらにそのTransformオブジェクトをDisplayObjectのtransformプロパティに適用します。これらの変換の機能には、平行移動(xおよびyの位置変更)や回転、拡大・縮小、傾斜などが含まれます。
このような変換は「アフィン変換」と呼ばれます。アフィン変換は、直線の平行を保って変換するため、平行な直線同士は変換しても平行になります。
変換行列をDisplayObjectに適用するには、Transformオブジェクトを作成して、そのmatrixプロパティに変換行列を設定します。そして、DisplayObjectのtransformプロパティに、そのTransformオブジェクトを設定してください。Matrixオブジェクトはパラメータとして、以下のようなメソッドに用いられることもあります。
- BitmapDataオブジェクトのdraw()メソッド
- GraphicオブジェクトのbeginBitmapFill()やbeginGradientFill()、lineGradientStyle()メソッド
変換行列は3×3の行列で、その内容はつぎのとおりです[*1]。
 
これまでの変換行列では、vとu、wプロパティは追加の機能を提供します。Matrixクラスは2次元空間でのみ処理されるので、プロパティ値はつねにuとvが0.0、wが1.0とみなされます。行列における有効な値はつぎのとおりです[*1]。
 
Matrixオブジェクトの6つのプロパティ、a、b、c、d、tx、tyそれぞれについて、値を取得・設定することができます。
Matrixクラスはおもな4つの変換である、平行移動、拡大・縮小、回転、傾斜をサポートします。そのうち3つの変換は、下表に掲げた専用のメソッドで設定することもできます。
  
    | 変換 | メソッド | 変換行列の値 | 結果の表示
[*2] | 説明 | 
  
    | 平行移動(変位) | translate(tx, ty) |  |   | イメージを、右にtxピクセル、下にtyピクセル移動します。 | 
  
    | 拡大・縮小 | scale(Sx, Sy) |  |   | イメージの大きさを変更して、各ピクセルの位置をx軸方向にsx倍、y軸方向にSy倍します。 | 
  
    | 回転 | rotate(q) | [*1]
 |   | イメージを角度q回転します。なお、角度の単位はラジアンです。 | 
  
    | 傾斜 | なし。プロパティbとcを設定する必要があります。 |  [*3]
 |   | イメージをx軸またはy軸の方向に、連続的にスライドします。Matrixオブジェクトのbプロパティは、y軸に沿った傾斜角のtanを示します。また、Matrixオブジェクトのcプロパティは、x軸に沿った傾斜角のtanを示します。 | 
変換の関数はそれぞれ現行のmatrixプロパティを変更するので、複数の変換を効果的に組合わせることができます。それには、複数の変換関数を呼出してから、そのmatrixを対象のDisplayObjectに適用します(DisplayObjectのtransformプロパティを用います)。
new Matrix()コンストラクタを使ってMatrixオブジェクトを生成し、そのMatrixオブジェクトに対してメソッドを呼出します。
  
    | [訳者注*1] [ヘルプ]では、変換行列におけるMatrix.bとMatrix.cプロパティの位置が入れ違っています(「Flash CS3ヘルプ正誤表」参照)。なお、英語版のLiveDocsでは、これらの図は修正されています。 [訳者注*2] [ヘルプ]の図は単純化されすぎてわかりにくいので、オリジナルの図に差替えました。 [訳者注*3] [ヘルプ]では、変換行列におけるMatrix.bとMatrix.cプロパティ、つまりskewxとskewyの位置が入れ違っています(「Flash CS3ヘルプ正誤表」参照)。 | 
Player
  ActionScript 3.0/Flash Player 9/AIR1.0以降。
出典
Adobe LiveDocs[ActionScript 3.0 Language and Components Reference] > [Matrix]
参考
Adobe LiveDocs[ActionScript 3.0コンポーネントリファレンスガイド] > [Matrix]
      
      作成者: 野中文雄
      作成日: 2008年8月31日