文章目录
- 一、向量和矩阵的基本运算
- 1、简单变换
- 1. 平移变换
- 2. 缩放变换
- 3. 旋转变换
- 4. 一般线性变换
- 2、齐次坐标
- 0. 齐次坐标表示
- 1. 2D点的齐次坐标变换
- 2. 投影空间 ( x , y , w ) (x, y, w) (x,y,w)
- 3. 2D直线的齐次坐标表示
- a. 直线的参数方程表示
- b. 直线的法向量和原点距离表示
- 4. 叉积算子
- 5. 平行线可以相交
一、向量和矩阵的基本运算
1、简单变换
x = [ x y ] \boldsymbol{x} =\begin{bmatrix}x\\y\end{bmatrix} x=[xy]
1. 平移变换
[
x
′
y
′
]
=
[
x
y
]
+
[
a
b
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}x\\y\end{bmatrix} + \begin{bmatrix}a\\b\end{bmatrix}
[x′y′]=[xy]+[ab]
将向量
[
a
b
]
\begin{bmatrix}a\\b\end{bmatrix}
[ab]加到
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy]上,得到平移后的新向量
[
x
′
y
′
]
=
[
x
+
a
y
+
b
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}x+a\\y+b\end{bmatrix}
[x′y′]=[x+ay+b]。其中
a
a
a和
b
b
b分别为x方向和y方向的平移量。
2. 缩放变换
[
x
′
y
′
]
=
[
s
x
0
0
s
y
]
[
x
y
]
=
[
s
x
x
s
y
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}s_x & 0\\0 & s_y\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix} = \begin{bmatrix}s_xx\\s_yy\end{bmatrix}
[x′y′]=[sx00sy][xy]=[sxxsyy]
通过缩放矩阵
[
s
x
0
0
s
y
]
\begin{bmatrix}s_x & 0\\0 & s_y\end{bmatrix}
[sx00sy]乘以
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy],可以得到缩放后的向量
[
x
′
y
′
]
=
[
s
x
x
s
y
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}s_xx\\s_yy\end{bmatrix}
[x′y′]=[sxxsyy]。其中
s
x
s_x
sx和
s
y
s_y
sy分别为x方向和y方向的缩放比例。
3. 旋转变换
[
x
′
y
′
]
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
[
x
y
]
\begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}\cos\theta & -\sin\theta\\\sin\theta & \cos\theta\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}
[x′y′]=[cosθsinθ−sinθcosθ][xy]
通过旋转矩阵
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
\begin{bmatrix}\cos\theta & -\sin\theta\\\sin\theta & \cos\theta\end{bmatrix}
[cosθsinθ−sinθcosθ]乘以
[
x
y
]
\begin{bmatrix}x\\y\end{bmatrix}
[xy],可以得到绕原点逆时针旋转
θ
\theta
θ角度后的向量
[
x
′
y
′
]
\begin{bmatrix}x'\\y'\end{bmatrix}
[x′y′]。
4. 一般线性变换
[ x ′ y ′ ] = [ a b c d ] [ x y ] = [ a x + b y c x + d y ] \begin{bmatrix}x'\\y'\end{bmatrix} = \begin{bmatrix}a & b\\c & d\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix} = \begin{bmatrix}ax+by\\cx+dy\end{bmatrix} [x′y′]=[acbd][x