矩阵
矩阵
由 m * n
个数排成的 m
行 n
列的数表称为m行n列的矩阵,简称 m*n 矩阵
以下是一个 2*3
矩阵
基本运算
加减法
只有同型矩阵之间才能进行加减法运算
运算律:
交换律:
A + B = B + A
结合律:
(A + B) + C = A + (B + C)
转置
把矩阵 A 的行和列互相交换所产生的矩阵称为A的转置矩阵
运算律:
乘法
结果中 m*n
的数,是由 A
的 m
行和 B
的 n
列相乘得出来
向量、点矩阵
2D 点 = (x, y, 1)ᵀ
2D 向量 = (x, y, 0)ᵀ
这样定义满足以下实现
vector + vector = vector
point - point = vector
point + vector = point (点沿着一个向量移动一定距离,最后还是点)
齐次坐标
旋转、缩放都是线性变换,比如在二维上可以用一个 2*2
矩阵完成
但是平移不是线性变换,不能用一个 2*2
矩阵乘一个二维向量实现
这个时候引入一个齐次坐标
,把矩阵增加一个维度,就可以实现平移
至此,旋转、缩放、平移都可以通过增加一个齐次坐标,形成 3*3
矩阵,完成矩阵模型
二维矩阵
缩放
旋转
以原点为中心进行逆时针旋转
顺时针旋转为上面矩阵的逆矩阵
平移
矩阵模型
矩阵需要经历一系列变换 A1, A2, ..., An
先生效的变换,应该先作用,所以在公式上从右到左的
如何绕某一个点旋转
先把那个点平移到原点,然后进行旋转,最后再反向平移回去
三维矩阵
旋转
绕 X、Y、Z
轴旋转
理解:
- 为什么绕 X 轴旋转,矩阵 1x1 的位置为 1
因为绕 X 轴旋转,则 x 位置不变,所以为1,其余位置坐旋转
- 为什么绕 Y 轴旋转,是逆矩阵
因为Y轴是,Z叉乘X得到的,所以是相反的