仿射变换

仿射变换(Affine transformation),又称仿射映射,是指在几何中,对一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。

一个使用仿射变换所制造有自相似性的分形

一个对向量平移,与旋转缩放的仿射映射为

上式在齐次坐标上,等价于下面的式子

分形的研究里,收缩平移仿射映射可以制作具有自相似性分形

数学定义

一个在两个仿射空间之间的仿射变换,是在向量上呈现线性之坐标点的变换(即为空间中点与点之间的向量)。以符号表示的话, '使得  ,决定任一对点的线性变换:  :

 

或者  .

其他定义

我们可以将此定义继续延伸: 假设选定一原点 ,   表示其图像  , 如此即代表对任何向量  :  


假设选定一原点  ,此即可以拆解成一仿射变换  使得  , 特定而言

 ,


总结即,很直观的,  包含了一个变换与线性坐标。


给定同一场中的两个仿射空间   , 一函数  为一仿射映射当且仅当对任一加权点的集合   of weighted points in  于 such that

我们得到[1]

 

此定义等价于   保留了 质心.

表示

如上所示,仿射变换为两函数的复合平移线性映射。普通向量代数用矩阵乘法呈现线性映射, 用向量加法表示平移。正式言之,于有限维度之例中,假如该线性映射被表示为一矩阵“A”,平移被表示为向量  ,一仿射映射  可被表示为

 

增广矩阵

二维平面上的仿射变换可呈现于三维空间中。平移即为沿着z轴的错切,旋转则以z轴为轴心

使用一 增广矩阵 与一增广向量, 用一矩阵乘法同时表示平移与线性映射是有可能的。此技术需要所有向量在其末端扩长 “1”且所有矩阵都于底部添加一排零,右边扩长一列变换向量,及右下角添加一个 “1”。

 

等价于

 

以上所言之扩长矩阵被称为 “仿射变换矩阵”,又或称为 “投射变换矩阵” (其可应用于 投影变换)。

此表示法以 Kn半直积 与 GL(n, k)展示了 所有可逆 仿射变换的集合。 此为一个于众函数集结下进行的一个 , 被称为 仿射群

普通矩阵向量乘法总将原点映射至原点,因此无法呈现平移(原点必须映射至其他点)。借由于所有向量上扩增一坐标 “1”,我们将原空间映至更高维空间的一个子集合以进行变换。在该空间中,原本之空间占有了扩长坐标一的1的子集合。 因此原空间的原点可在(0,0, ... 0, 1)。原空间的平移可借由更高维度空间的线性变换来达成(即为错切变换)。在高维度中的坐标即为 齐次坐标的一例。 假如原空间为欧几里德, 则更高维空间为实射影空间

使用齐次坐标的优点为,借由相对应矩阵之乘积,可将任意数目的仿射变换结合为一。此性质被大量运用于 计算机图形, 计算机视觉机器人学

性质

仿射变换保留了:

  1. 点之间的共线性英语Collinearity:在同一条直线上的三个或更多的点(称为共线点)在变换后依然在同一条直线上(共线);
  2. 直线的平行性:两条或以上的平行直线,在变换后依然平行;
  3. 集合的凸性:凸集合变换后依然是凸集合。并且,最初的极值点被映射到变换后的极值点集[2]
  4. 平行线段的长度的比例:两条由点   定义的平行线段,  的长度的比例等于  的长度的比例;
  5. 不同质量的点组成集合的质心

仿射变换为可逆的当且仅当 为可逆的。用矩阵表示,其逆元为:

 

可逆仿射变换组成仿射群英语Affine_group,其中包含具n阶的一般线性群为子群,且自身亦为一   阶的一般线性群之子群。 当A为常数乘以正交矩阵时,此子集合构成一子群,称之为相似变换。举例而言,假如仿射变换于一平面上且假如  行列式   ,那么该变换即为等面积变换英语Equiareal_map。此类变换组成被称为等仿射群的子群。一同时为等面积变换与相似变换的变换,即为一平面上保持欧几里德距离不变的保距映射

这些群都有一保留了原定向的子群,也就是其对应之   的行列式大于零。最后一个例子,即三维空间中刚体的运动组成的群(旋转和平移),刚体的运动在机器人学中尤为常用[3]

如果有一固定点,我们可以将其当成原点,则仿射变换被缩还到一线性变换。这使得变换更易于分类与理解。举例而言,将一变换叙述为特定轴的旋转,相较于将其形容为平移与旋转的结合,更能提供变换行为清楚的解释。只是,这取决于应用与内容。

实例

实数之仿射变换

函数f : RR, f(x) = mx + c ,其中mc为常数,此即为一般之仿射变换。

有限域的仿射变换

以下等式表示了有限域(28)中的仿射变换:

 

此处[M]为矩阵 且 {v} 为向量 :

:   : 

举例来讲,将以大端序二进制表示的元素{a} = y7 + y6 + y3 + y = {11001010}变换成大端序十六进制,计算如下:

 
 
 
 
 
 
 
 


于是, {a′} = y7 + y6 + y5 + y3 + y2 + 1 = {11101101} = {ED}。

平面几何之仿射变换

 
一个实数平面上的简单仿射变换

在 ℝ2,左方所示之变换即为以下映射:

 

将原红色三角形之三个顶点作变换后给出了新蓝色三角形的三个顶点。事实上,所有三角形皆可由仿射变换来达成,所有平行四边形也可以,但一般四边形不行。

参看

  • 仿射变换的变换矩阵
  • 平移的矩阵表示
  • 仿射群
  • 仿射几何
  • 线性(第二个意思是在1维中的仿射变换)
  • 三维投影
  1. ^ Schneider, Philip K. & Eberly, David H. Geometric Tools for Computer Graphics. Morgan Kaufmann. 2003: 98 [2015-03-10]. ISBN 978-1-55860-594-7. (原始内容存档于2013-10-13). 
  2. ^ Reinhard Schultz. Affine transformations and convexity (PDF). [27 February 2017]. (原始内容存档 (PDF)于2020-11-25). 
  3. ^ Robotic Systems Lab, ETH Zurich. Robot Dynamics Lecture Notes (PDF). [2020-04-25]. (原始内容存档 (PDF)于2020-11-12).