banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

ActionScript学習ノート:行列変換MatrixTransformerの応用

Flash ActionScript 学習ノート:MatrixTransformer の応用

flash ActionScript Matrix
Flash では、表示オブジェクトに対して行列変換を行うための行列演算がサポートされています。これにより、オブジェクトの移動、サイズ変更、回転、四角形の傾斜などが実現できます。
具体的な使用方法は以下の通りです:
まず、行列オブジェクトを定義し、その行列に対してパラメータ演算を行い、変換したい表示オブジェクトに行列変換を適用します。

行列の定義:

import flash.geom.Matrix;
var myMatrix: Matrix = new Matrix();

行列に対して適切な行列変換を行う:
移動:

translate(a , b)
//a は水平方向の移動距離を表します
//b は垂直方向の移動距離を表します。単位はピクセルです

サイズ変更

scale(x , y)
//x は水平方向の拡大倍率を表します。デフォルトは 1 です
//y は垂直方向の拡大倍率を表します

回転

rotate(a)
//a は回転角度を表します。ここではオブジェクトの (0,0) を中心に回転します。負の値も指定できます
// ラジアン単位を使用する場合は、変換に 2 * Math.PI * (-30 / 360) を使用します。ここでは - 30° を表します
// 左に 30 度回転します

四角形の傾斜

skew(a , b)
//a は水平方向の傾斜を表します
//b は垂直方向の傾斜を表します。単位はラジアンです

行列変換の使用方法

var demo = new DisplayObject();
demo.transform.matrix = myMatrix;

以下は完全なデモの実装です:
水平方向に 10 ピクセル移動し、垂直方向に 20 ピクセル移動します。
水平方向に 2 倍拡大し、垂直方向に 0.5 倍拡大します。
右に 30 度回転します。
水平方向に 10 度傾斜し、垂直方向に 20 度傾斜します。

import flash.geom.Matrix;
var myMatrix = new Matrix ();// 新しい Matrix を定義します
myMatrix.translate (10,20);// 移動
myMatrix.scale (2,0.5);// 拡大
myMatrix.rotate (2 * Math.PI * (30 / 360));// 回転
myMatrix.skew (10,20);// 傾斜
demo.transform.matrix = myMatrix; //demo に Matrix 変換を適用します

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。