好きな座標をマトリックスに射影してみよう
次にこの関数を使います。この関数は、先ほど作った行列を使って、好きな座標を変換することができます。
★Vec2dTransformPoint();
第01引数 変換したいx座標
第02引数 変換したいy座標
第03引数 座標変換成分を持った行列
戻り値 変換後の座標(オブジェクト型)
使い方を見てみましょう。例えば座標(10,12)をx方向に3y方向に-2移動した後の座標を求めるには、以下のようにします。
座標(10,12)をx方向に3y方向に-2移動した後の座標
|
var m = _root.Mtx33Translate(3,-2);
var vec = _root.Vec2dTransformPoint(10,12,m);
|
もうひとつ例です。座標(5,8)を原点を中心に30度回転した後の座標を求めてみます。
座標(5,8)を原点を中心に30度回転した後の座標
|
var m = _root.Mtx33Rotate( 30 );
var vec = _root.Vec2dTransformPoint(5, 8, m);
|
もうひとつ例です。座標(8,11)を原点を中心にx方向に 2 倍、y方向に 3 倍引き伸ばした後の座標を求めてみます。
座標(8,11)を原点を中心にx方向に2倍y方向に3倍引き伸ばした座標
|
var m = _root.Mtx33Scale( 2, 3 );
var vec = _root.Vec2dTransformPoint(8, 11, m);
|
簡単ですね。
もう一度ここまでの流れを説明すると、座標変換の方法としては3つあり、移動と回転と拡大があります。その3つは以下の関数を使うことにより、変換の成分を持った行列を取得できます。
・移動行列作成 = Mtx33Translate(x, y);
・回転行列作成 = Mtx33Rotate(rot);
・拡縮行列作成 = Mtx33Scale(x, y);
そして得られた行列を使ってこの関数で、好きな座標を変換した後の結果を得ることができます。
Vec2dTransformPoint(x, y, 3つの行列のどれか);
|