MatrixTransformer クラスには、Matrix オブジェクトの図形変換を適用する静的メソッドが含まれます。
transform() メソッド
transform()
メソッドには、次の各パラメーターが含まれます。
-
sourceMatrix
— メソッドで変換される入力マトリックス
-
xScale
と
yScale
—
x
と
y
の縮尺率
-
dx
と
dy
—
x
と
y
の変換ピクセル数
-
rotation
— 回転度数
-
skew
— 傾斜率(%)
-
skewType
— 傾斜の方向、
「右」
または
「左」
戻り値は、結果のマトリックスです。
transform()
メソッドは、クラスの次の静的メソッドを呼び出します。
-
skew()
-
scale()
-
translate()
-
rotate()
それぞれ、ソースマトリックスに変換を適用して返します。
skew() メソッド
skew()
メソッドは、マトリックスの
b
および
c
プロパティを調整して、マトリックスを傾斜します。オプションのパラメーター
unit
によって、傾斜角度の定義に使用する単位が決まります。必要に応じて、メソッドは
angle
値をラジアンに変換します。
if (unit == "degrees")
{
angle = Math.PI * 2 * angle / 360;
}
if (unit == "gradients")
{
angle = Math.PI * 2 * angle / 100;
}
傾斜変換を適用するために、
skewMatrix Matrix
オブジェクトが作成され、調整されます。最初は、次のように、同一のマトリックスです。
var skewMatrix:Matrix = new Matrix();
skewSide
パラメーターによって、傾斜を適用する側が決まります。
「right」
が設定されている場合、次のコードでマトリックスの
b
プロパティが設定されます。
skewMatrix.b = Math.tan(angle);
それ以外の場合、次のように Matrix の
c
プロパティが調整され、下側が傾斜されます。
skewMatrix.c = Math.tan(angle);
次の例で示すように、2 つのマトリックスを連結することによって、結果の傾斜が既存のマトリックスに適用されます。
sourceMatrix.concat(skewMatrix);
return sourceMatrix;
scale () メソッド
次の例では、縮尺率がパーセントで指定されている場合、まず
scale()
メソッドで縮尺率を調整してから、マトリックスオブジェクトの
scale()
メソッドを使用します。
if (percent)
{
xScale = xScale / 100;
yScale = yScale / 100;
}
sourceMatrix.scale(xScale, yScale);
return sourceMatrix;
translate () メソッド
translate()
メソッドは、次のようにマトリックスオブジェクトの
translate()
メソッドを呼び出し、単純に、
dx
および
dy
平行移動係数を適用します。
sourceMatrix.translate(dx, dy);
return sourceMatrix;
rotate () メソッド
rotate()
メソッドは、入力回転角度をラジアンに変換し(度またはグラデーションで指定されている場合)、マトリックスオブジェクトの
rotate()
メソッドを呼び出します。
if (unit == "degrees")
{
angle = Math.PI * 2 * angle / 360;
}
if (unit == "gradients")
{
angle = Math.PI * 2 * angle / 100;
}
sourceMatrix.rotate(angle);
return sourceMatrix;