一個使用仿射变换所製造有自相似性的碎形
仿射变换 (Affine transformation),又称仿射映射 ,是指在几何 中,對一个向量空间 进行一次线性变换 并接上一个平移 ,变换为另一个向量空间。
一個對向量
x
→
{\displaystyle {\vec {x}}}
平移
b
→
{\displaystyle {\vec {b}}}
,與旋轉缩放
A
{\displaystyle A}
的仿射映射為
y
→
=
A
x
→
+
b
→
{\displaystyle {\vec {y}}=A{\vec {x}}+{\vec {b}}}
上式在齐次坐标上,等價於下面的式子
[
y
→
1
]
=
[
A
b
→
0
,
…
,
0
1
]
[
x
→
1
]
{\displaystyle {\begin{bmatrix}{\vec {y}}\\1\end{bmatrix}}={\begin{bmatrix}A&{\vec {b}}\ \\0,\ldots ,0&1\end{bmatrix}}{\begin{bmatrix}{\vec {x}}\\1\end{bmatrix}}}
在分形 的研究裡,收縮平移仿射映射可以製作具有自相似性的分形 。
數學定義
一个于两仿射空间间定义的仿射变换
f
:
A
→
B
{\displaystyle f\colon {\mathcal {A}}\to {\mathcal {B}}}
是一个点集映射,线性地作用于向量(即空间中的点之间的向量)。形式化表述是,
f
{\displaystyle f}
决定一线性变换
φ
{\displaystyle \varphi }
,使得对于任意
A
{\displaystyle {\mathcal {A}}}
中的点对
P
,
Q
{\displaystyle P,Q}
,有:
f
(
P
)
f
(
Q
)
→
=
φ
(
P
Q
→
)
{\displaystyle {\overrightarrow {f(P)~f(Q)}}=\varphi \left({\overrightarrow {PQ}}\right)}
或记
f
(
Q
)
−
f
(
P
)
=
φ
(
Q
−
P
)
.
{\displaystyle f(Q)-f(P)=\varphi (Q-P).}
我们可以以其他一些方式解释这一定义,以下进行说明:
若于
A
{\displaystyle {\mathcal {A}}}
中选定一原點
O
{\displaystyle O}
,记其于
B
{\displaystyle {\mathcal {B}}}
中的像为
f
(
O
)
{\displaystyle f(O)}
,那么就意味着,对于任意向量
x
∈
A
{\displaystyle {\boldsymbol {x}}\in {\mathcal {A}}}
,有
f
:
(
O
+
x
)
↦
(
B
+
φ
(
x
)
)
.
{\displaystyle f\colon (O+{\boldsymbol {x}})\mapsto (B+\varphi ({\boldsymbol {x}})).}
而若于
B
{\displaystyle {\mathcal {B}}}
中选定一原点
O
′
{\displaystyle O'}
,则其可分解为一将
O
{\displaystyle O}
映到
O
′
{\displaystyle O'}
的仿射变换
g
:
A
→
B
{\displaystyle g\colon {\mathcal {A}}\to {\mathcal {B}}}
,换言之,遵从向量
b
=
O
′
B
→
{\displaystyle {\boldsymbol {b}}={\overrightarrow {O'B}}}
之变换,
g
:
(
O
+
x
)
↦
(
O
′
+
φ
(
x
)
)
.
{\displaystyle g\colon (O+{\boldsymbol {x}})\mapsto (O'+\varphi ({\boldsymbol {x}})).}
以上可以直观地总结为,仿射变换包含一个线性映射与一个变换。
等价定义
给定相同域上的两仿射空间
A
{\displaystyle {\mathcal {A}}}
和
B
{\displaystyle {\mathcal {B}}}
,称一映射
f
:
A
→
B
{\displaystyle f:{\mathcal {A}}\to {\mathcal {B}}}
为仿射变换,当且仅当 对于任意
A
{\displaystyle {\mathcal {A}}}
上满足
∑
i
∈
I
λ
i
=
1
{\displaystyle \sum _{i\in I}\lambda _{i}={\boldsymbol {1}}}
的权重点簇
{
(
a
i
,
λ
i
)
}
i
∈
I
{\displaystyle \{(a_{i},\lambda _{i})\}_{i\in I}}
有[ 1]
f
(
∑
i
∈
I
λ
i
a
i
)
=
∑
i
∈
I
λ
i
f
(
a
i
)
.
{\displaystyle f\left(\sum _{i\in I}\lambda _{i}a_{i}\right)=\sum _{i\in I}\lambda _{i}f\left(a_{i}\right).}
换言之,
f
{\displaystyle f}
保持了原相的质心 。
表示
如上所示,仿射變換為兩函數的複合 :平移 及線性映射 。普通向量代數用矩陣乘法 呈現線性映射, 用向量加法 表示平移。正式言之,於有限維度之例中,假如該線性映射被表示為一矩陣「A」,平移被表示為向量
b
→
{\displaystyle {\vec {b}}}
,一仿射映射
f
{\displaystyle f}
可被表示為
y
→
=
f
(
x
→
)
=
A
x
→
+
b
→
.
{\displaystyle {\vec {y}}=f({\vec {x}})=A{\vec {x}}+{\vec {b}}.}
增廣矩陣
使用一增廣矩陣與一增廣向量,用一矩陣乘法 同時表示平移與線性映射是有可能的。此技術需要所有向量在其末端擴長“1”且所有矩陣都於底部添加一排零,右邊擴長一列轉換向量,及右下角添加一個“1”。
[
y
→
1
]
=
[
A
b
→
0
…
0
1
]
[
x
→
1
]
{\displaystyle {\begin{bmatrix}{\vec {y}}\\1\end{bmatrix}}=\left[{\begin{array}{ccc|c}\,&A&&{\vec {b}}\ \\0&\ldots &0&1\end{array}}\right]{\begin{bmatrix}{\vec {x}}\\1\end{bmatrix}}}
等價於
y
→
=
A
x
→
+
b
→
.
{\displaystyle {\vec {y}}=A{\vec {x}}+{\vec {b}}.}
以上所言之擴長矩陣被稱為“仿射變換矩陣”,又或稱為“投射變換矩陣”(其可應用於投影轉換)。
此表示法以K n 之半直積與GL(n , k )展示了 所有可逆 仿射變換的集合。此為一個於眾函數集結下進行的一個群 ,被稱為仿射群。
普通矩陣向量乘法總將原點映射至原點,因此無法呈現平移(原點必須映射至其他點)。藉由於所有向量上擴增一座標“1”,我們將原空間映至更高維空間的一個子集合以進行變換。在該空間中,原本之空間佔有了擴長座標一的1的子集合。因此原空間的原點可在(0,0, ... 0, 1)。原空間的平移可藉由更高維度空間的線性轉換來達成(即為錯切變換)。在高維度中的座標即為齊次座標的一例。假如原空間為歐幾里德 ,則更高維空間為實射影空間。
使用齊次座標的優點為,藉由相對應矩陣之乘積,可將任意數目的仿射變換結合 為一。此性質被大量運用於計算機圖形 ,計算機視覺 與機器人學 。
性質
仿射變換保留了:
點之間的共线性 :在同一条直线上的三个或更多的点(称为共线点)在变换后依然在同一条直线上(共线);
直线的平行性 :两条或以上的平行直线,在变换后依然平行;
集合的凸性 :凸集合变换后依然是凸集合。并且,最初的极值点 被映射到变换后的极值点集[ 2] ;
平行线段的长度的比例:两条由点
p
1
,
p
2
,
p
3
,
p
4
{\displaystyle p_{1},p_{2},p_{3},p_{4}}
定义的平行 线段,
p
1
p
2
→
{\displaystyle {\overrightarrow {p_{1}p_{2}}}}
與
p
3
p
4
→
{\displaystyle {\overrightarrow {p_{3}p_{4}}}}
的长度的比例等于
f
(
p
1
)
f
(
p
2
)
→
{\displaystyle {\overrightarrow {f(p_{1})f(p_{2})}}}
与
f
(
p
3
)
f
(
p
4
)
→
{\displaystyle {\overrightarrow {f(p_{3})f(p_{4})}}}
的长度的比例;
不同質量的點组成集合的质心 。
仿射變換為可逆的当且仅当
A
{\displaystyle A}
為可逆的。用矩陣表示,其逆元為:
[
A
−
1
−
A
−
1
b
→
0
,
…
,
0
1
]
{\displaystyle \left[{\begin{array}{ccc|c}&A^{-1}&&-A^{-1}{\vec {b}}\ \\0,&\ldots &,0&1\end{array}}\right]}
可逆仿射變換組成仿射群 ,其中包含具n階的一般線性群為子群,且自身亦為一
n
+
1
{\displaystyle n+1}
階的一般線性群之子群。
當A為常數乘以正交矩陣 時,此子集合構成一子群,稱之為相似變換 。舉例而言,假如仿射變換於一平面上且假如
A
{\displaystyle A}
之行列式 為
1
{\displaystyle 1}
或
−
1
{\displaystyle -1}
,那麼該變換即為等面積變換 。此類變換組成被稱為等仿射群 的子群。一同時為等面積變換與相似變換的變換,即為一平面上保持歐幾里德距離 不變的保距映射。
這些群都有一保留了原定向的子群,也就是其對應之
A
{\displaystyle A}
的行列式大於零。最後一个例子,即三維空间中剛體 的運動组成的群(旋轉和平移),刚体的运动在机器人学中尤为常用[ 3] 。
如果有一固定點,我們可以將其當成原點,則仿射變換被縮還到一線性變換。這使得變換更易於分類與理解。舉例而言,將一變換敘述為特定軸的旋轉,相較於將其形容為平移與旋轉的結合,更能提供變換行為清楚的解釋。只是,這取決於應用與內容。
實例
實數之仿射變換
函數
f
:
R
→
R
{\displaystyle f:\mathrm {R} \rightarrow \mathrm {R} }
,
f
(
x
)
=
m
x
+
c
{\displaystyle f(x)=mx+c}
,其中
m
{\displaystyle m}
與
c
{\displaystyle c}
為常數,此即為一般之仿射變換。
有限體的仿射變換
以下等式表示了有限體 (28 )中的仿射變換:
{
a
′
}
=
M
{
a
}
⊕
{
v
}
,
{\displaystyle \{\,a'\,\}=M\{\,a\,\}\oplus \{\,v\,\},}
此處[M]為矩陣 且 {v} 為向量 :
:
M
{
a
}
=
[
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
]
{\displaystyle M\{\,a\,\}={\begin{bmatrix}1&0&0&0&1&1&1&1\\1&1&0&0&0&1&1&1\\1&1&1&0&0&0&1&1\\1&1&1&1&0&0&0&1\\1&1&1&1&1&0&0&0\\0&1&1&1&1&1&0&0\\0&0&1&1&1&1&1&0\\0&0&0&1&1&1&1&1\end{bmatrix}}}
:
{
v
}
=
[
1
1
0
0
0
1
1
0
]
.
{\displaystyle \{\,v\,\}={\begin{bmatrix}1\\1\\0\\0\\0\\1\\1\\0\end{bmatrix}}.}
舉例來講,將以大端序 二進位表示的元素
{
a
}
=
y
7
+
y
6
+
y
3
+
y
=
{
11001010
}
{\displaystyle \{a\}=y^{7}+y^{6}+y^{3}+y=\{11001010\}}
轉換成大端序 十六進位,計算如下:
a
0
′
=
a
0
⊕
a
4
⊕
a
5
⊕
a
6
⊕
a
7
⊕
1
=
0
⊕
0
⊕
0
⊕
1
⊕
1
⊕
1
=
1
{\displaystyle a_{0}'=a_{0}\oplus a_{4}\oplus a_{5}\oplus a_{6}\oplus a_{7}\oplus 1=0\oplus 0\oplus 0\oplus 1\oplus 1\oplus 1=1}
a
1
′
=
a
0
⊕
a
1
⊕
a
5
⊕
a
6
⊕
a
7
⊕
1
=
0
⊕
1
⊕
0
⊕
1
⊕
1
⊕
1
=
0
{\displaystyle a_{1}'=a_{0}\oplus a_{1}\oplus a_{5}\oplus a_{6}\oplus a_{7}\oplus 1=0\oplus 1\oplus 0\oplus 1\oplus 1\oplus 1=0}
a
2
′
=
a
0
⊕
a
1
⊕
a
2
⊕
a
6
⊕
a
7
⊕
0
=
0
⊕
1
⊕
0
⊕
1
⊕
1
⊕
0
=
1
{\displaystyle a_{2}'=a_{0}\oplus a_{1}\oplus a_{2}\oplus a_{6}\oplus a_{7}\oplus 0=0\oplus 1\oplus 0\oplus 1\oplus 1\oplus 0=1}
a
3
′
=
a
0
⊕
a
1
⊕
a
2
⊕
a
3
⊕
a
7
⊕
0
=
0
⊕
1
⊕
0
⊕
1
⊕
1
⊕
0
=
1
{\displaystyle a_{3}'=a_{0}\oplus a_{1}\oplus a_{2}\oplus a_{3}\oplus a_{7}\oplus 0=0\oplus 1\oplus 0\oplus 1\oplus 1\oplus 0=1}
a
4
′
=
a
0
⊕
a
1
⊕
a
2
⊕
a
3
⊕
a
4
⊕
0
=
0
⊕
1
⊕
0
⊕
1
⊕
0
⊕
0
=
0
{\displaystyle a_{4}'=a_{0}\oplus a_{1}\oplus a_{2}\oplus a_{3}\oplus a_{4}\oplus 0=0\oplus 1\oplus 0\oplus 1\oplus 0\oplus 0=0}
a
5
′
=
a
1
⊕
a
2
⊕
a
3
⊕
a
4
⊕
a
5
⊕
1
=
1
⊕
0
⊕
1
⊕
0
⊕
0
⊕
1
=
1
{\displaystyle a_{5}'=a_{1}\oplus a_{2}\oplus a_{3}\oplus a_{4}\oplus a_{5}\oplus 1=1\oplus 0\oplus 1\oplus 0\oplus 0\oplus 1=1}
a
6
′
=
a
2
⊕
a
3
⊕
a
4
⊕
a
5
⊕
a
6
⊕
1
=
0
⊕
1
⊕
0
⊕
0
⊕
1
⊕
1
=
1
{\displaystyle a_{6}'=a_{2}\oplus a_{3}\oplus a_{4}\oplus a_{5}\oplus a_{6}\oplus 1=0\oplus 1\oplus 0\oplus 0\oplus 1\oplus 1=1}
a
7
′
=
a
3
⊕
a
4
⊕
a
5
⊕
a
6
⊕
a
7
⊕
0
=
1
⊕
0
⊕
0
⊕
1
⊕
1
⊕
0
=
1.
{\displaystyle a_{7}'=a_{3}\oplus a_{4}\oplus a_{5}\oplus a_{6}\oplus a_{7}\oplus 0=1\oplus 0\oplus 0\oplus 1\oplus 1\oplus 0=1.}
于是, {a′} = y7 + y6 + y5 + y3 + y2 + 1 = {11101101} = {ED}。
平面幾何之仿射變換
一個實數平面上的簡單仿射變換
在 ℝ2 ,左方所示之變換即為以下映射:
[
x
y
]
↦
[
0
1
2
1
]
[
x
y
]
+
[
−
100
−
100
]
{\displaystyle {\begin{bmatrix}x\\y\end{bmatrix}}\mapsto {\begin{bmatrix}0&1\\2&1\end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}+{\begin{bmatrix}-100\\-100\end{bmatrix}}}
將原紅色三角形之三個頂點 作變換後給出了新藍色三角形的三個頂點。事實上,所有三角形皆可由仿射變換來達成,所有平行四邊形也可以,但一般四邊形不行。
参看
仿射变换的变换矩阵
平移的矩阵表示
仿射群
仿射几何
线性 (第二个意思是在1维中的仿射变换)
三维投影
特性
分形维数
Assouad 维数
关联维数
豪斯多夫维数
计盒维数
填充维数
拓撲維數
递归
自相似
Barnsley fern 迭代函数系统
巴恩斯利蕨葉
康托尔集
龍形曲線
科赫雪花
门格海绵
谢尔宾斯基地毯
謝爾賓斯基三角形
空間填充曲線
T型方間
魏尔斯特拉斯函数
逻辑斯谛映射
萊維C形曲線
希爾伯特曲線
奇異吸子 L系統 逃逸時間分形
曼德博集合
朱利亚集合
李亞普諾夫分形
牛頓分形
燃燒巨輪分形
三角帽分形
渲染技术 隨機分形
布朗运动
分形地形
擴散限制凝聚
萊維飛行
曼德尔盒
曼德尔球
渗流理论
自避行走
學者
格奥尔格·康托尔
费利克斯·豪斯多夫
加斯東·朱利亞
海里格·馮·科赫
保羅·皮埃爾·萊維
亞歷山大·李亞普諾夫
本華·曼德博
刘易斯·弗赖伊·理查森
瓦茨瓦夫·谢尔宾斯基
其他相關
《英國的海岸線有多長?統計自相似和分數維度》
以豪斯多夫維數排列的分形列表
《分形之美 》 (1986)
分形艺术
《混沌学传奇 》 (1987)
《大自然的分形几何学》 (1982)
分形压缩
仿射变换
^ Schneider, Philip K.; Eberly, David H. Geometric Tools for Computer Graphics . Morgan Kaufmann. 2003: 98 [2024-06-18 ] . ISBN 978-1-55860-594-7. (原始内容存档 于2023-10-25).
^ Reinhard Schultz. Affine transformations and convexity (PDF) . [27 February 2017] . (原始内容存档 (PDF) 于2020-11-25).
^ Robotic Systems Lab, ETH Zurich. Robot Dynamics Lecture Notes (PDF) . [2020-04-25 ] . (原始内容存档 (PDF) 于2020-11-12).