序
向量
向量的概念
- 向量:具有一定大小和方向 a ⃗ \vec{a} a
- 向量的长度: ∣ ∣ a ⃗ ∣ ∣ \begin{aligned} ||\vec{a}|| \end{aligned} ∣∣a∣∣
- 单位向量: a ^ = a ⃗ / ∣ ∣ a ⃗ ∣ ∣ \begin{aligned} \hat{a} = \vec{a}/||\vec{a}||\end{aligned} a^=a/∣∣a∣∣
向量的基本操作
- 向量的加法:平行四边形法则、三角形法则(代数上直接左标相加即可)
- 向量表示: A ⃗ = ( x y ⋮ ) A ⃗ T = ( x y ⋯ ) ∣ ∣ A ⃗ ∣ ∣ = x 2 + y 2 + ⋯ \vec{A} = \begin{pmatrix}x \\ y \\ \vdots \\ \end{pmatrix} \\ \vec{A}^{\,T} = \begin{pmatrix}x & y & \cdots \\ \end{pmatrix} \\ ||\vec{A}|| = \sqrt{x^2+y^2+\cdots} A=⎝⎜⎛xy⋮⎠⎟⎞AT=(xy⋯)∣∣A∣∣=x2+y2+⋯
- 向量点乘(Dot product):
a
⃗
⋅
b
⃗
=
∣
∣
a
⃗
∣
∣
∣
∣
b
⃗
∣
∣
c
o
s
θ
c
o
s
θ
=
a
⃗
⋅
b
⃗
∣
∣
a
⃗
∣
∣
∣
∣
b
⃗
∣
∣
F
o
r
u
n
i
t
v
e
c
t
o
r
s
(
单
位
向
量
)
:
c
o
s
θ
=
a
^
⋅
b
^
\vec{a}\cdot\vec{b} = || \vec{a}||\,||\vec{b}|| cos\theta \\ \, \\ cos\theta = \frac{\vec{a}\cdot\vec{b}}{||\vec{a}|| \,||\vec{b}||} \\ \, \\ For\; unit\; vectors(单位向量):cos\theta=\hat{a}\cdot\hat{b}
a⋅b=∣∣a∣∣∣∣b∣∣cosθcosθ=∣∣a∣∣∣∣b∣∣a⋅bForunitvectors(单位向量):cosθ=a^⋅b^
在坐标系中: a ⃗ ⋅ b ⃗ = ( x a y a ⋮ ) ⋅ ( x b y b ⋮ ) = x a x b ⋯ + y a y b ⋯ + ⋯ \vec{a}\cdot\vec{b}=\begin{pmatrix}x_a \\ y_a \\ \vdots \\ \end{pmatrix}\cdot\begin{pmatrix}x_b \\ y_b \\ \vdots \\ \end{pmatrix} = x_ax_b\cdots+y_ay_b\cdots+\cdots a⋅b=⎝⎜⎛xaya⋮⎠⎟⎞⋅⎝⎜⎛xbyb⋮⎠⎟⎞=xaxb⋯+yayb⋯+⋯
点乘在图形学中主要用于找两个向量间的(余弦)夹角 - 一些运算法则 a ⃗ ⋅ b ⃗ = b ⃗ ⋅ a ⃗ a ⃗ ⋅ ( b ⃗ + c ⃗ ) = a ⃗ ⋅ b ⃗ + a ⃗ ⋅ c ⃗ ( k a ⃗ ) ⋅ b ⃗ = a ⃗ ⋅ ( k b ⃗ ) = k ( a ⃗ ⋅ 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} \\ \, \\ (k\vec{a})\cdot\vec{b}=\vec{a}\cdot(k\vec{b})=k(\vec{a}\cdot\vec{b}) a⋅b=b⋅aa⋅(b+c)=a⋅b+a⋅c(ka)⋅b=a⋅(kb)=k(a⋅b)
- 投影(projection):下为向量b在向量a上的投影
b
⃗
⊥
=
k
a
^
=
∣
∣
b
⃗
⊥
∣
∣
=
∣
∣
b
⃗
∣
∣
c
o
s
θ
(
b
⃗
−
b
⃗
⊥
)
⊥
b
⃗
⊥
\vec{b}_\perp=k\hat{a} = ||\vec{b}_\perp|| = ||\vec{b}||cos\theta \\ \, \\ (\vec{b}-\vec{b}_\perp) \perp \vec{b}_\perp
b⊥=ka^=∣∣b⊥∣∣=∣∣b∣∣cosθ(b−b⊥)⊥b⊥
投影可将一个向量分解为延某方向和垂直某方向的两个向量,可用于计算两个向量的接近程度,点乘的正负可用于体现某向量是否与另一向量的方向性
- 叉积(Cross Product):
1)两向量叉积的结果与这两个向量都垂直
2)右手法则(右手螺旋定则)
3)可用于构建坐标系
a ⃗ × b ⃗ = − b ⃗ × a ⃗ ∣ ∣ a ⃗ × b ⃗ ∣ ∣ = ∣ ∣ a ⃗ ∣ ∣ ∣ ∣ b ⃗ ∣ ∣ s i n ϕ \vec{a}\times\vec{b}=-\vec{b}\times\vec{a} \\ \, \\ ||\vec{a}\times\vec{b}|| = ||\vec{a}||\,||\vec{b}||sin\phi a×b=−b×a∣∣a×b∣∣=∣∣a∣∣∣∣b∣∣sinϕ
叉乘的计算:
a
⃗
×
b
⃗
=
(
y
a
z
b
−
y
b
z
a
z
a
x
b
−
x
a
z
b
x
a
y
b
−
y
a
x
b
)
a
⃗
×
b
⃗
=
A
∗
b
=
(
0
−
z
a
y
a
z
a
0
−
x
a
−
y
a
x
a
0
)
(
x
b
y
b
z
b
)
\vec{a}\times\vec{b}= \begin{pmatrix}y_az_b-y_bz_a \\ z_ax_b-x_az_b \\ x_ay_b-y_ax_b \\ \end{pmatrix} \\ \, \\\vec{a}\times\vec{b}=A^*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}
a×b=⎝⎛yazb−ybzazaxb−xazbxayb−yaxb⎠⎞a×b=A∗b=⎝⎛0za−ya−za0xaya−xa0⎠⎞⎝⎛xbybzb⎠⎞
其中
A
∗
A^*
A∗为向量
a
⃗
\vec{a}
a的对偶矩阵
叉乘在计算机图形学中的作用:
1)判断左和右
2)判断内和外 (光栅化的基础)
- 一个坐标系的定义:
矩阵(matrix)
-
一个m×n矩阵有m行(rows)n列(columns)
-
矩阵的一些运算
矩阵乘:需满足前矩阵的列数等于后一个矩阵的行数(M×N)(N×P)=(M×P)
对 于 A × B , 所 得 矩 阵 中 a i , j = α i ⃗ ⋅ β j ⃗ , 其 中 α i ⃗ 为 A 的 行 向 量 , β j ⃗ 为 B 的 列 向 量 对于A\times B,所得矩阵中a_{i,j}=\vec{\alpha_i}\cdot\vec{\beta_j},其中\vec{\alpha_i}为A的行向量,\vec{\beta_j}为B的列向量 对于A×B,所得矩阵中ai,j=αi⋅βj,其中αi为A的行向量,βj为B的列向量
矩阵乘一般不满足交换律,满足结合律和分配律
即:(AB)C=A(BC)
A(B+C)=AB+AC
(A+B)C=AC+BC
对 于 矩 阵 A m × n , 可 与 列 向 量 α m × 1 相 乘 , 可 用 于 变 换 对于矩阵A_{m\times n},可与列向量\alpha_{m\times 1}相乘,可用于变换 对于矩阵Am×n,可与列向量αm×1相乘,可用于变换
矩阵转置:
-
单位矩阵、对角矩阵、逆矩阵等概念
-
一些向量操作的矩阵形式
作业
链接:作业0
按照该页面要求以及pdf文件配置好虚拟机等即可