基礎的2-D繞原點旋轉

在2-D的迪卡爾坐標系中,一個位置向量的旋轉公式可以由三角函數的幾何意義推出。比如上圖所示是位置向量R逆時針旋轉角度B前后的情況。在左圖中,我們有關系:
x0 = |R| * cosA
y0 = |R| * sinA
=>
cosA = x0 / |R|
sinA = y0 / |R|
在右圖中,我們有關系:
x1 = |R| * cos(A+B)
y1 = |R| * sin(A+B)
其中(x1, y1)就是(x0, y0)旋轉角B后得到的點,也就是位置向量R最后指向的點。我們展開cos(A+B)和sin(A+B),得到
x1 = |R| * (cosAcosB - sinAsinB)
y1 = |R| * (sinAcosB + cosAsinB)
現在把
cosA = x0 / |R|
sinA = y0 / |R|
代入上面的式子,得到
x1 = |R| * (x0 * cosB / |R| - y0 * sinB / |R|)
y1 = |R| * (y0 * cosB / |R| + x0 * sinB / |R|)
=>
x1 = x0 * cosB - y0 * sinB
y1 = x0 * sinB + y0 * cosB
這樣我們就得到了2-D迪卡爾坐標下向量圍繞圓點的逆時針旋轉公式。順時針旋轉就把角度變為負:
x1 = x0 * cos(-B) - y0 * sin(-B)
y1 = x0 * sin(-B) + y0 * cos(-B)
=>
x1 = x0 * cosB + y0 * sinB
y1 = -x0 * sinB + y0 * cosB
現在我要把這個旋轉公式寫成矩陣的形式,有一個概念我簡單提一下,平面或空間里的每個線性變換(這里就是旋轉變換)都對應一個矩陣,叫做變換矩陣。對一個點實施線性變換就是通過乘上該線性變換的矩陣完成的。好了,打住,不然就跑題了。
所以2-D旋轉變換矩陣就是:
[cosA sinA] [cosA -sinA]
[-sinA cosA] 或者 [sinA cosA]