圖形變換之旋轉變換
阿新 • • 發佈:2018-12-16
二維旋轉變換
下面是一個簡單的繞原點旋轉變換的圖。
關於圖形變換我們關注的都是怎麼得到變換之後的座標,而對於變換後的座標,很多教材上都只有一個簡略的結果,並不會給出詳細的推導過程。今天學習旋轉變換的時候,對怎麼得出變換後的座標產生了疑惑,花了幾分鐘才想明白,特此記錄一下。
我們不妨設變換前圖形上任意一點的座標為 P(x, y),變換後圖形上對應點座標為 P’(x’ ,y’) 。對於旋轉變換來說,我們不妨設旋轉角度為 θ。我們現在就來推導一下如何得到 x’ 和 y’。(應該還有更好的證法) 由旋轉的性質我們毫無疑問可以得知 OP = OP’ = 設 。我們有 。我們有下面這兩個方程: 把這兩個方程解出來就可以得到 x’ 和 y’ 的值了(把 sin(a+b),cos(a+b) 拆開算,這裡打方程不方便就不敲出具體拆解過程了):
其座標變換矩陣如下
三維旋轉變換
以下都是往逆時針方向旋轉
分別繞三根座標軸旋轉的時候,有一個座標是不變的,然後我們把另外兩個當成二維的算就行,我們可以分別得出對應的座標變換矩陣:
繞 z 軸旋轉
繞 x 軸旋轉
繞 y 軸旋轉
總結
我們不難發現核心部分基本和二維都是差不多的,除了繞 y 軸旋轉的那個 sinθ 的正負號反了。那麼我們有沒有想過為什麼就它是反的呢?一個歪理如下:因為核心部分被分開了 ? 以下結論對初始點在兩軸正方向成立,對旋轉角度也有一定要求:
- 對於繞 z 軸旋轉,觀察到 x 一直在減小
- 對於繞 x 軸旋轉,觀察到 y 一直在減小
- 對於繞 y 軸旋轉,觀察到 z 一直在減小
而座標變換矩陣中,誰減小,負號就在誰的 sinθ 那裡。
- 二維座標變換補圖