矩阵与坐标变换

转自: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

 

 

 

总结:任意初等坐标变换的实现可以用矩阵来表示。

 

 

 

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

一个男人生前要达到什么程度的不可一世,才能避免死于无名?  ——《陈二狗的妖孽人生》

 

posted @ 2020-10-01 00:58  叫我妖道  阅读(1945)  评论(0编辑  收藏  举报
~~加载中~~