矩阵
-
矩阵可以看做一个数字装填的2维数组(m行*n列),m,n可以使任意>=1的数字,为方便表示,统一使用M(m,n)表示一个m行n列的久着呢
-
两个矩阵相乘的规则 \(Ma(o,p) \times Mb(p,q) = Mc(o,q)\)
- 第一个矩阵的列 = 第二个矩阵的行
- 相乘结果得到一个矩阵
- 矩阵行数 = 第一个矩阵的行数,矩阵列数 = 第二个矩阵的列数
- Mresult的元素 Item(i,j) = Ma的第i行的所有元素依次 乘以 Mb的低j列的所有元素 并相加
-
满足的数学定律
- 不满足
- \(Ma \times Mb \neq Mb \times Ma\) (不满足交换律,意义不同) \(Ma \times Mb = - Mb \times Ma\)
- 满足
- \(Ma \times Mb \times Mc \times Md = Ma \times (Mb \times Mc) \times Md\) (满足结合律,可以随意结合)
- 加法的分配律 \(Ma \times(Mb+Mc)=Ma \times Mb + Ma \times Mc\)
-
几种特殊的矩阵
- 单位矩阵 一般用I(n)表示 任何矩阵与单位矩阵相乘不会有任何变化,还是他自身
$$\begin
1 & 0 & 0 & 0 \
0 & 1 & 0 & 0\
0 & 0 & 1 & 0\
0 & 0 & 0 & 1
\end$$
- 方块矩阵 M(m,m) 行数 = 列数
- 转置矩阵 M(m,n)的转置矩阵 = M(n,m) 可以理解为被旋转处理了
\[\begin{bmatrix}
1&2&3&4\\
5&6&7&8\\
\end{bmatrix}
\]
转置后
\[\begin{bmatrix}
1&5\\
2&6\\
3&7\\
4&8\\
\end{bmatrix}
\]
- 转置矩阵的特性
- \((Ma^{转置})^{转置} = Ma\)
- \((Ma \times Mb)^{转置} = Mb^{转置} \times Ma^{转置}\)
- 逆矩阵 顾名思义相当于置反 可以用于将变换还原(将转换为世界坐标系下的点的位置 乘以 MLocalToWorld的逆矩阵 = 模型本地坐标系的位置)
- 特性
- \((M^{-1})^{-1} = M\)
- \((单位矩阵)^{-1} = 单位矩阵自身\)
- \((M^{转置})^{-1} = (M^{-1})^{转置}\)
- \((Ma \times Mb \times Mc)^{-1} = Mc^{-1} \times Mb^{-1} \times Ma^{-1} M^{-1}\)
- 正交矩阵 \(M \times M^{转置} = 单位矩阵\)
- 特性
- \((M_{正交})^{转置} = (M_{正交})^{-1}\) 这一特性将支持使用转置矩阵来代替逆矩阵,因为逆矩阵的求得需要复杂的运算,前提是这是一个正交矩阵
-
空间变换的矩阵应用
- 平移 将平移的偏移量写入4x4矩阵的最后一列的钱3行 与 原位置矩阵(扩充至1x4的矩阵,其中最后一位补1)相乘
\[\begin{bmatrix}
1&0&0&tx\\
0&1&0&ty\\
0&0&1&tz\\
0&0&1&1\\
\end{bmatrix}
\times
\begin{bmatrix}
x\\
y\\
z\\
1\\
\end{bmatrix}
=
\begin{bmatrix}
tx+x\\
ty+y\\
tz+z\\
1\\
\end{bmatrix}
\]
- 缩放 缩放参数写入在4x4矩阵的负对角线的前三位(结合矩阵相乘的计算规则就不难理解)
\[\begin{bmatrix}
Sx&0&0&tx\\
0&Sy&0&ty\\
0&0&Sz&tz\\
0&0&1&1\\
\end{bmatrix}
\times
\begin{bmatrix}
x\\
y\\
z\\
1\\
\end{bmatrix}
=
\begin{bmatrix}
Sx*x\\
Sy*y\\
Sz*z\\
1\\
\end{bmatrix}
\]
- 旋转
- 绕X,Y,Z轴旋转$\theta$度的矩阵如下,规则与向量叉乘类似,其中Y轴比较特殊
\[X =
\begin{bmatrix}
1&0&0&0\\
0&cos\theta&-sin\theta&0\\
0&sin\theta&cos\theta&0\\
0&0&0&1\\
\end{bmatrix}
Y =
\begin{bmatrix}
cos\theta&sin\theta&0&0\\
0&1&0&0\\
-sin\theta&cos\theta&1&0\\
0&0&0&0\\
\end{bmatrix}
Z =
\begin{bmatrix}
cos\theta&-sin\theta&0&0\\
sin\theta&cos\theta&0&0\\
0&0&1&0\\
0&0&0&0\\
\end{bmatrix}
\]
-
空间变换的准则
graph LR
缩放 --> 旋转
旋转--> 移动