座標の変換はベクトルで考えるとすごい簡単です(≧∇≦)b
ベクトルは矢印です。
二次元ベクトルはx方向とy方向の大きさを持った矢印で、
三次元ベクトルはx方向とy方向とz方向の大きさを持った矢印です。
ベクトルは矢印なので根本と先っちょがありますが、根本の位置は気にせず、根本から先っちょまでの大きさだけを考えます。(ただし「位置ベクトル」は根本を原点に置いた状態です。)
単位ベクトルは大きさ1の矢印です。どんな方向を向いていても大きさが1なら単位ベクトルです。
ここで、x軸方向の単位ベクトルi(成分は(1,0))と、y軸方向の単位ベクトルj(成分は(0,1))を考えます。
空間上の点P(x,y)は、単位ベクトルi, jに大きさを掛けて足して、
点P=x*i + y*j
と表せます。
■スケーリングとは
単位ベクトルi, jをそれぞれ4倍にしたベクトルA, B(これは大きさ4なので単位ベクトルではありません)を考えます。先ほどの式のi,jをA,Bに置き換えて、
点P2=x*A + y*B
と変換してみます。点P2の成分は
P2=x*(4,0) + y*(0,4)=(x*4, y*4)
で、点Pの座標を4倍した位置です。これがスケーリングです。
■回転とは
ベクトルi, jをそれぞれ30度だけ回転したベクトルC, Dを考えます。
ベクトルCの成分はベクトルi(1,0)を30度回転したものなので(cos30度, sin30度)、ベクトルDの成分はベクトルj(0,1)を30度回転したものなので(-sin30度、cos30度)になります。(C,Dは大きさ1なので単位ベクトルです。)
先ほどの点Pの式のi,jをC,Dに置き換えて、
点P3=x*C + y*D
と変換してみます。点P3の成分は
P3=x*(cos30度, sin30度) + y*(-sin30度, cos30度)=(x*cos30度-y*sin30度, x*sin30度+y*cos30度)
になります。これが回転です。
結局スケーリングと回転は同じで、点Pの座標を単位ベクトルi, jの合成で表していたものを、別のベクトルの合成におきかえる変換です('ω')