线性变换
- 从几何上直观看,
变换前是直线的,变换后依然是直线.
直线比例保持不变.
变换前是原点,变换后依然是原点。
如:旋转、推移
- 代数上实现,
旋转实现:若有 A ⃗ = [ x y ] \vec{A}=\begin{bmatrix} x\\y \end{bmatrix} A=[xy],旋转矩阵
T r o t a t e = [ cos θ − sin θ sin θ cos θ ] T_{rotate}=\begin{bmatrix} \cos \theta &-\sin \theta \\ \sin \theta &\cos \theta\end{bmatrix} Trotate=[cosθsinθ−sinθcosθ],通过矩阵乘法 T r o t a t e A ⃗ = A ’ ⃗ T_{rotate}\vec{A}=\vec{A^{’} } TrotateA=A’,得到旋转 θ \theta θ后的向量 A ’ ⃗ \vec{A^{’} } A’,平面上图形的每个点都如此,就形成旋转后的图形。
仿射变换
指在几何中,一个向量空间进行一次线性变换并接上 一个平移,变换为另一个向量空间。
- 从几何上直观看,
变换前是直线的,变换后依然是直线。
直线比例保持不变。
无
如:平移
- 代数上实现
一般定义为:一个向量 x ⃗ \vec{x} x 平移 b ⃗ \vec{b} b,与旋转放大缩小A的仿射为 y ⃗ \vec{y} y = A x ⃗ \vec{x} x+ b ⃗ \vec{b} b。
普通向量代数用矩阵乘法呈现线性映射,用向量加法表示平移。
仿射空间
仿射空间是点和向量的合集。仿射空间是没有起点只有方向与大小的向量所构成的线性空间。
在仿射空间中,点与点之间做差可以得到向量,点与向量做加法将得到另一个点,但是点与点之间不可以做加法。
从基本数学概念上来说,一个坐标系对应了一个仿射空间 (Affine Space),当矢量从一个坐标系变换到另一个坐标系时要进行线性变换 (Linear Transformation)。对点来说, 要进行仿射变换 (Affine Transformation)。这就是我们利用同源坐标的理由。它能在对矢量进行线性变换的同时对点进行仿射变换。坐标变换的基本操作就是将变换矩阵乘以矢量或点。
通过线性变换完成仿射变换
y
⃗
=
A
x
⃗
+
b
⃗
\vec{y}=A\vec{x}+\vec{b}
y=Ax+b 可以写作
[
y
⃗
1
]
=
[
A
b
⃗
0
1
]
[
x
⃗
1
]
\begin{bmatrix} \vec{y} \\1 \end{bmatrix}=\begin{bmatrix} A & \vec{b} \\ 0 & 1 \end{bmatrix}\begin{bmatrix}\vec{x} \\ 1\end{bmatrix}
[y1]=[A0b1][x1]
增加一个维度后,就可以在高维度通过线性变换来完成低维度的仿射变换。