学习目标
了解空间变换时获得新坐标的思路,尽量不深究矩阵的运算
矩阵的基础知识
矩阵是什么
线性代数的本质 - 03 - 矩阵与线性变换(真的没有偷懒)
正交矩阵
作用
这是个很有诱惑力的矩阵,因为如果一个矩阵被证明是正交矩阵,那就等价于:
M T M^T MT M M M = I I I, M M M M T M^T MT = I I I, M − 1 M^{-1} M−1 = M T M^T MT
判断
主要有两种方法判断:
- 构成矩阵的向量是一组标准正交基(即组成某个坐标系的三个轴的归一化向量)
- 矩阵只进行了旋转操作
条件太苛刻了,妥协一下:若矩阵是只进行了旋转、统一缩放,那么它需要在等式中乘上 k k k或 1 k \frac1k k1
变换矩阵
基本变换矩阵
平移矩阵
T T_{} T = [ 1 0 0 T x 0 1 0 T y 0 0 1 T z 0 0 0 1 ] \begin{bmatrix} 1&0&0&Tx\\0&1&0&Ty\\ 0&0&1&Tz\\ 0&0&0&1\end{bmatrix} ⎣⎢⎢⎡100001000010TxTyTz1⎦⎥⎥⎤
缩放矩阵
S S_{} S = [ S x 0 0 0 0 S y 0 0 0 0 S z 0 0 0 0 1 ] \begin{bmatrix} Sx&0&0&0\\0&Sy&0&0\\ 0&0&Sz&0\\ 0&0&0&1\end{bmatrix} ⎣⎢⎢⎡Sx0000Sy0000Sz00001⎦⎥⎥⎤
旋转矩阵
绕某一轴旋转 = 在其他两轴所组成的平面进行旋转
R x ( y o z ) R_{x(yoz)} Rx(yoz) = [ 1 0 0 0 0 c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 ] \begin{bmatrix} 1&0&0&0\\0&cosθ&-sinθ&0\\ 0&sinθ&cosθ&0\\ 0&0&0&1\end{bmatrix} ⎣⎢⎢⎡10000cosθsinθ00−sinθcosθ00001⎦⎥⎥⎤
R y ( z o x ) R_{y(zox)} Ry(zox) = [ c o s θ 0 s i n θ 0 0 1 0 0 − s i n θ 0 c o s θ 0 0 0 0 1 ] \begin{bmatrix} cosθ&0&sinθ&0\\ 0&1&0&0\\ -sinθ&0&cosθ&0\\ 0&0&0&1\end{bmatrix} ⎣⎢⎢⎡cosθ0−sinθ00100sinθ0cosθ00001⎦⎥⎥⎤
R z ( x o y ) R_{z(xoy)} Rz(xoy) = [ c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 0 0 0 0 1 ] \begin{bmatrix} cosθ&-sinθ&0&0\\ sinθ&cosθ&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} ⎣⎢⎢⎡cosθsinθ00−sinθcosθ0000100001⎦⎥⎥⎤
R x R_{x} Rx和 R z R_{z} Rz直接在二维旋转矩阵的基础上插入所绕轴,并用0和1替代
R y R_{y} Ry表现出来的 s i n θ sinθ sinθ的正负和 R x R_{x} Rx和 R z R_{z}