计算机图形学笔记(0):线性代数
前置知识:线性代数
1. 向量
向量的定义:
- 一个向量写做 \(\vec{a}\) 或者 \(\boldsymbol{a}\),或者由始末点表示 \(\overrightarrow{AB}= B-A\)
- 向量只有方向和长度没有起始位置。
向量的单位化(Normalization):
- 向量的大小(长度)写作 \(\lVert\vec{a}\rVert\)
- 单位向量 \(\hat{a}=\vec{a}/\lVert\vec{a}\rVert\)
- 单位向量用于表示方向
向量的加法:
- 几何上遵循三角法则或平行四边形法则
- 代数上直接坐标相加
- 在笛卡尔坐标系(Cartesian Coordinates)中:
- \(\boldsymbol{A}=\begin{pmatrix}x\\y\end{pmatrix}\)
- \(\boldsymbol{A}^T=(x, y)\)
- \(\lVert\boldsymbol{A}\rVert=\sqrt{x^2+y^2}\)
向量的乘法:
向量点乘(dot product):
\(\boldsymbol{a}\cdot\boldsymbol{b}=\lVert\boldsymbol{a}\rVert\lVert\boldsymbol{b}\rVert\cos{\theta}\)
利用点乘可以求两向量之间的夹角
\[ \cos{\theta}=\frac{\boldsymbol{a}\cdot\boldsymbol{b}}{\lVert\boldsymbol{a}\rVert\lVert\boldsymbol{b}\rVert}=\boldsymbol{\hat{a}}\cdot\boldsymbol{\hat{b}} \]
向量点乘支持交换律、结合律、分配律
在笛卡尔坐标系中
- \(\boldsymbol{a}\cdot\boldsymbol{b}=\begin{pmatrix}x_a\\y_a\end{pmatrix}\cdot\begin{pmatrix}x_b\\y_b\end{pmatrix}=x_ax_b+y_ay_b\)
点乘的应用:
光线的夹角
向量投影(projection):
设 \(\boldsymbol{b}_\bot\) (读作 b perp/perpendicular)为 \(\boldsymbol{b}\) 在 \(\boldsymbol{a}\) 上的摄影
\(\boldsymbol{b}_\bot=k\boldsymbol{\hat{a}}\)
\(k=\lVert\boldsymbol{b}_\bot\rVert=\lVert\boldsymbol{b}\rVert\cos{\theta}\)
向量叉乘(cross product):
两个向量叉乘的结果是垂直于两个向量所在平面的向量,其方向遵循右手螺旋定则(右手系中)
向量叉乘符合分配率和结合律
\(\lVert \boldsymbol{a}\times \boldsymbol{b}\rVert=\lVert\boldsymbol{a}\rVert\lVert\boldsymbol{b}\rVert\sin{\theta}\)
\(\boldsymbol{a}\times\boldsymbol{b}=-\boldsymbol{b}\times\boldsymbol{a}\)
\(\boldsymbol{a}\times\boldsymbol{a}=\boldsymbol{0}\)
在笛卡尔坐标系中:
\[ \boldsymbol{a}\times\boldsymbol{b}=\begin{pmatrix}y_az_b-y_bz_a\\z_ax_b-x_az_b\\x_ay_b-y_ax_b\end{pmatrix}=A\times\boldsymbol{b}=\begin{pmatrix}0&-z_a&y_a\\z_a&0&-x_a\\-y_a&x_a&0\end{pmatrix}\begin{pmatrix}x_b\\y_b\\z_b\end{pmatrix} \]
2. 矩阵
矩阵乘法:
- 矩阵相乘:
- 左矩阵的列必须等于右矩阵的行,即 \((m\times n)(n\times p)=(m\times p)\)
- 乘法得到的矩阵的第 \((i,j)\) 个元素的值为左矩阵第 \(i\) 行与右矩阵第 \(j\) 列的点乘
- 矩阵乘法符合结合律和分配率,没有交换律
- 矩阵转置:
- 交换 \((i,j)\Leftrightarrow(j,i)\)
- \((\textbf{AB})^T=\textbf{B}^T\textbf{A}^T\)
- 单位矩阵:
- \(\textbf{I}_{3\times3}=\begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix}\)
- 逆矩阵:
- \(\textbf{AA}^{-1}=\textbf{A}^{-1}\textbf{A}=\textbf{I}\)
- \((\textbf{AB})^{-1}=\textbf{B}^{-1}\textbf{A}^{-1}\)
- 矩阵乘法是点变换的关键。