矩阵与向量相乘的含义

图-1

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

图-2

图-3

可以观察到矩阵可以对坐标进行变换,从而得到缩放后的坐标,那是否可以实现对坐标绕某个点旋转或者平移的变换呢?

二维旋转

如何设计矩阵来乘以坐标,实现将左图旋转得到右图的效果?

图-4

设计旋转矩阵:

图-5

图-6

求ABCD:

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

图-7

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

图-8

最终得到旋转矩阵:

图-9

二维平移

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

图-10

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

图-11

图-12

但是将其纳入空间变换这个计算系统中有些突兀,能不能就继续使用乘法来实现平移变换?

齐次坐标

为了实现可通过矩阵相乘得到平移变换后的坐标,引入了齐次坐标的概念: (1)给二维矩阵添加一个标识维度,1表示当前矩阵为点,0表示当前矩阵为向量。
(2)将第三列前两行元素设置为需要平移的x,y值

图-13

当表示点时:

图-14

当表示向量时:

图-15

二维空间变换矩阵总结:

缩放矩阵:

图-16

旋转矩阵:

图-17

平移矩阵:

图-18

变换矩阵的使用需要注意先后顺序:

如: 先平移后旋转得到的坐标和先旋转再平移后得到的坐标是不一样的,从直观的图形上来看,前者和后者都围绕原点旋转,所以最终得到的图形不一样。从矩阵相乘来看,矩阵相乘从右往左依次对顶点(向量)进行加工:

图-19