矩陣與坐標變換


轉自:https://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html

http://www.fjutacm.com/Problem.jsp?pid=2566

 

一,在平面中,一個點繞任意點旋轉θ度后的點的坐標 

假設對二維空間上任意點(x1,y1),繞一個坐標點(x0,y0)逆時針旋轉a角度后的新的坐標設為(x2, y2),有公式:

    x2= (x1 - x0)*cos(a) - (y1 - y0)*sin(a) + x0 ;

    y2= (x1 - x0)*sin(a) + (y1 - y0)*cos(a) + y0 ;

 

由該公式易得,

1,當順時針旋轉時,只需要將 a 變成 -a  就可以了

2,當 a 為 90度時 ,

x2 = - ( y1 - y0 ) +x0

y2 = x1 - x0 + y0

3,當 a 為 90度時 ,

x2 =  ( y1 - y0 ) +x0

y2 = - ( x1 - x0 ) + y0

 

4, 當坐標軸,以向右為 x 軸正向 ,向下 軸為 y 軸 時,依然是順時針有

x2= (x1 - x0)*cos(a) + (y1 - y0)*sin(a) + x0 ;

y2= (x1 - x0)*sin(a) - (y1 - y0)*cos(a) + y0 ;

y 都變成 -y,但是 最后加上 x0,y0 的不能改,這是旋轉點的坐標,不能改,

而前面的是 改變量 ,運算時要要考慮到坐標,所以需要更改。

 

 

 

二 ,矩陣與坐標轉換

關於上面公式的推導可以在最上面的百度鏈接里面看到,反正我是沒去看證明,

看上去好麻煩,不過如果用矩陣去證明的話,還是比較簡單的,

畢竟,矩陣創造出來就是用來解決線性代換的問題。


三大基礎初等坐標變化包括

1,旋轉變換:

圖片.png

2,伸縮變換:

圖片.png

3,平移變換:

圖片.png

其他任意初等坐標變換的都可以由這三個變換經有限次復合得到。

所以任意初等變化都可以表示成以下形式

圖片.png

 

比如繞着(a,b)順時針旋轉θ可以看成,平移(-a,-b),旋轉θ,平移(a,b)這三步復合得到,即:

圖片.png

即 :

所以該式展開就是上面的:

 x2= (x1 - x0)*cos(a) - (y1 - y0)*sin(a) + x0 ;

 y2= (x1 - x0)*sin(a) + (y1 - y0)*cos(a) + y0 ;     只不過是符號換了一下

 

再比如,以(a,b)為中心,橫坐標擴大n倍,縱坐標擴大m

 

 

 

總結:任意初等坐標變換的實現可以用矩陣來表示。

 

 

 

========== ========= ======== ======== ======= ===== ==== === == =

一個男人生前要達到什么程度的不可一世,才能避免死於無名?  ——《陳二狗的妖孽人生》

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM