23-空间变换—二维
矩阵与向量相乘的含义

如图,矩阵与向量相乘得到新的向量,这个向量有自己的坐标,可以理解为一个点的位置坐标,那这个相乘得到的坐标代表了什么?


可以观察到矩阵可以对坐标进行变换,从而得到缩放后的坐标,那是否可以实现对坐标绕某个点旋转或者平移的变换呢?
二维旋转
如何设计矩阵来乘以坐标,实现将左图旋转得到右图的效果?

设计旋转矩阵:


求ABCD:
使用原来(1,0)的点可以得到A C

使用原来(0,1)的点可以得到B D

最终得到旋转矩阵:

二维平移
如何设计矩阵乘以坐标实现将左图平移到右图的效果?

最直观的做法就是坐标直接加上平移数值


但是将其纳入空间变换这个计算系统中有些突兀,能不能就继续使用乘法来实现平移变换?
齐次坐标
为了实现可通过矩阵相乘得到平移变换后的坐标,引入了齐次坐标的概念: (1)给二维矩阵添加一个标识维度,1表示当前矩阵为点,0表示当前矩阵为向量。
(2)将第三列前两行元素设置为需要平移的x,y值

当表示点时:

当表示向量时:

二维空间变换矩阵总结:
缩放矩阵:

旋转矩阵:

平移矩阵:

变换矩阵的使用需要注意先后顺序:
如: 先平移后旋转得到的坐标和先旋转再平移后得到的坐标是不一样的,从直观的图形上来看,前者和后者都围绕原点旋转,所以最终得到的图形不一样。从矩阵相乘来看,矩阵相乘从右往左依次对顶点(向量)进行加工:
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
