向量
通常记为\vec{a}或者a;
\vec{AB} = B - A;
有两个重要的属性:方向和长度;
没有绝对的开始位置;
向量的长度记为\Vert \vec{a} \Vert;
单位长度:
长度为1
\hat{a} = \frac{\vec{a}}{\Vert \vec{a} \Vert}
被用作表示方向
向量相加
几何: 平行四边形法则和三角形法则
算术: 坐标相加
笛卡尔坐标
使用X和Y表示向量(通常是orthogonal unit)
A = \begin{pmatrix} x \\ y \end{pmatrix}
A^T = \begin{pmatrix} x, y \end{pmatrix}
\Vert A \Vert = \sqrt{x^2 + y^2}
向量乘法
点乘
\vec{a} \cdot \vec{b} = \Vert \vec{a} \Vert \Vert {b} \Vert cos\theta
\cos\theta = \frac{\vec{a} \cdot \vec{b}}{\Vert \vec{a} \Vert \Vert \vec{b} \Vert}
对于单位向量
cos\theta = \hat{a} \cdot \hat{b}
性质
\vec{a} \cdot \vec{b} = \vec{b} \cdot \vec{a}
\vec{a} \cdot (\vec{b} + \vec{c}) = \vec{a} \cdot \vec{b} + \vec{a} \cdot \vec{c}
在笛卡尔坐标系中点乘
逐元素相乘,然后相加
2D
\vec{a} \cdot \vec{b} =
\begin{pmatrix}
x_a \\
y_a
\end{pmatrix}
\cdot
\begin{pmatrix}
x_b \\
y_b
\end{pmatrix} = x_ax_b + y_ay_b
3D
\vec{a} \cdot \vec{b} =
\begin{pmatrix}
x_a \\
y_a \\
z_a
\end{pmatrix}
\cdot
\begin{pmatrix}
x_b \\
y_b \\
z_b
\end{pmatrix} = x_ax_b + y_ay_b + z_az_b
点乘在图形学中的应用
两个向量之间的夹角(例如,光源和平面之间夹角的余弦值)
一个向量在另一个向量上的投影
衡量两个方向的接近程度
分解一个向量
决定前和后
投影
\vec{b}_{\bot}:\vec{b}在\vec{a}上的投影
因为\vec{b}_{\bot}一定沿着\hat{a},所以
\vec{b}_{\bot} = k\hat{a}
k 的大小
k=\vert \vert \vec{b}_{\bot} \vert \vert = \vert \vert \vec{b} \vert \vert cos\theta
向量的叉积
叉乘正交与两个初始向量
方向通过右手螺旋定理
在建立坐标系中非常有用
笛卡尔坐标系下
叉乘在图形学中的应用
决定左和右
决定内和外
标准正交坐标系
Orthonormal Coordinate Frames
矩阵
2维数组
在图形学中,被用作表示变换(transformations)
Translation, rotation, shear, scale
m \times n = m 行, n 列
\begin{pmatrix} 1 & 3 \\ 5 & 2 \\ 0 & 4 \end{pmatrix}
相加和相乘一个标量,是逐元素与标量相加或者相乘
矩阵乘法
(M \times N)(N \times P) = (M \times P)
相乘结果,元素(i, j),行i来自A,列j来自B
性质:
无交换律
其他性质
转置
\begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix}^T = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix}
性质
(AB)^T = B^TA^T
I_{3\times3} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}
AA^{-1} = A^{-1}A = I
(AB)^{-1} = B^{-1}A^{-1}
矩阵点乘
\vec{a} \cdot \vec{b} = \vec{a}^T\vec{b} = (x_a\ y_a\ z_a)\begin{pmatrix} x_b \\ y_b \\ z_b \end{pmatrix} = (x_ax_b + y_ay_b + z_az_b)
矩阵叉乘
\vec{a} \times \vec{b} = A * b = \begin{pmatrix} 0 & -z_z & y_a \\ z_a & 0 & -x_a \\ -y_a & x_a & 0 \end{pmatrix}\begin{pmatrix} x_b \\ y_b \\ z_b \end{pmatrix}