頭の奥に閉めておいたというか、もう先生に返したというか、数学の復習シリーズです。今回はまず2D Object Transformation Matrixについて話しします。2D Object Transformation Matrix様々な場合でも使えます。例えばパソコンの画面にあるObjectの移動とか、実際Roboticsの移動計算とか、ですね。それでは、始まりましょう。
Scaling In X-Direction Only
座標(x,y)があり、最初はXの方向だけ移動すると考えます。
Matrixにはこうなります。

Kのこときなりますね。英語だとScaling Coefficientだと言います。まぁ、簡単にいいますとScaling Factorです。

もしあなたがObjectをXに2倍に距離をシフトしたいなら、このKは2すればよいです。

もしあなたがObjectをXに半分の距離をシフトしたいなら、このKを1/2すればよいです。
Exampleで話ししましょう。例えばいまその2つのPointsがあります。
そこでPoint(1,1)とPoint(2,1)にも2倍進みたいと考えています。
単純にKを2に置き換えればよいです。
実際計算してみますとX1’は(2,1)です。

そしてX2’は(4,1)です。

みんなさんもわかりと思いますが、Yはそのままの値でXだけは2倍になりましたね。
Scaling In Y-Direction Only
次はY方向だけ移動すると考えましょう。
Kの場所は一番左上から右下にシフトしました。

Xとあまり変わりませんので、図などはここで省略させていただきます。
例えばXはそのままで、Yを3倍にシフトします。

Kを3に置き換えます。

実際計算してみますとX1’は(1,3)です。

そしてX2’は(2,3)です。

今度はXは変わらず、Yだけは3倍になりましたね。
Scaling In Both X,Y Direction
ここまできたら、2つのXY移動動作を一つにまとめておきましょう。
あまり難しくなく、左上と右下の値をKxとKyの変数すればよいです。

では、もしXは4倍移動し、Yは1/2倍に戻すにするのであれば。

X1’は(4,½)になります。

X2’は(8,½ )になります。

はーい、お疲れ様です。