查看“仿射变换”的源代码
←
仿射变换
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{NoteTA|G1=Math}} [[File:Fractal fern explained.png|thumb|200px|一個使用仿射变换所製造有[[自相似]]性的[[碎形]]]] '''仿射变换''',又称'''仿射映射''',是指在[[几何]]中,一个[[向量空间]]进行一次[[线性变换]]并接上一个[[平移]],变换为另一个向量空间。 一個對向量<math> \vec{x} </math>平移<math> \vec{b} </math>,與旋轉放大縮小<math> A</math>的仿射映射為 :<math> \vec{y} = A \vec{x} + \vec{b} </math> 上式在[[齐次坐标]]上,等價於下面的式子 :<math> \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} </math> 在[[分形]]的研究裡,收縮平移仿射映射可以製造製具有[[自相似|自相似性]]的[[分形]]。 ==數學定義== 一個在兩個[[仿射空間]]之間的仿射變換,是在向量上呈現[[線性]]之座標點的變換(即為空間中點與點之間的[[向量]])。以符號表示的話,''<math>f</math>'使得 ''<math>\varphi</math>'',決定任一對點的線性變換: <math>P, Q \in \mathcal{A}</math>: :<math>\overrightarrow{f(P)~f(Q)} = \varphi(\overrightarrow{PQ})</math> 或者 <math>f(Q)-f(P) = \varphi(Q-P)</math>. ===其他定義=== 我們可以將此定義繼續延伸: 假設選定一原點 , <math>O \in \mathcal{A}</math>且 <math>B</math>表示其圖像<math>f(O) \in \mathcal{B}</math> , 如此即代表對任何向量 <math>\vec{x}</math>: <math>f: (O+\vec{x}) \mapsto (B+\varphi(\vec{x})) .</math> 假設選定一原點<math>O' \in \mathcal{B}</math> ,此即可以拆解成一仿射變換<math>g : \mathcal{A} \to \mathcal{B}</math> 使得 <math>O \mapsto O'</math>, 特定而言 :<math>g: (O+\vec{x}) \mapsto (O'+\varphi(\vec{x})) ,</math>, 總結即,很直觀的, <math>f</math>包含了一個變換與線性座標。 給定同一場中的兩個仿射空間<math>\mathcal{A}</math> 與 <math>\mathcal{B}</math> , 一函數<math>f: \mathcal{A} \to \mathcal{B}</math> 為一仿射映射若且唯若對任一加權點的集合 <math>\{(a_i, \lambda_i)\}_{i\in I}</math> of weighted points in <math>\mathcal{A}</math>於 such that 我們得到<ref> {{cite book|authors=Schneider, Philip K. & Eberly, David H.|title=Geometric Tools for Computer Graphics|publisher=Morgan Kaufmann|year=2003|isbn=978-1-55860-594-7|page=98|url=http://books.google.com/books?id=3Q7HGBx1uLIC&pg=PA98}}</ref> : <math>f\left(\sum_{i\in I}\lambda_i a_i\right)=\sum_{i\in I}\lambda_i f(a_i)\, .</math> 此定義等價於 <math>f</math> 保留了 [[質心]]. ==表示== 如上所示,仿射變換為兩函數的[[複合函數|複合]]:[[平移]]及[[線性映射]]。普通向量代數用[[矩陣乘法]]呈現線性映射, 用[[矢量|向量加法]]表示平移。正式言之,於有限維度之例中,假如該線性映射被表示為一矩陣「A」,平移被表示為向量 <math>\vec{b}</math>,一仿射映射 <math>f</math>可被表示為 :<math> \vec{y} = f(\vec{x}) = A \vec{x} + \vec{b}. </math> ===增廣矩陣=== [[File:Affine transformations.ogv|thumb|250px|right|二維平面上的仿射變換可呈現於三維空間中。平移即為沿著z軸的[[錯切]],旋轉則以z軸為軸心]] 使用一 [[增廣矩陣]] 與一增廣向量, 用一[[矩陣乘法]]同時表示平移與線性映射是有可能的。此技術需要所有向量在其末端擴長 “1”且所有矩陣都於底部添加一排零,右邊擴長一列轉換向量,及右下角添加一個 “1”。 :<math> \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} </math> 等價於 :<math> \vec{y} = A \vec{x} + \vec{b}. </math> 以上所言之擴長矩陣被稱為 “仿射變換矩陣”,又或稱為 “投射變換矩陣” (其可應用於 [[投影轉換]]). 此表示法以 ''K''<sup>''n''</sup>之[[半直積]] 與 GL(''n'', ''k'')展示了 所有[[反函數|可逆]] 仿射變換的集合。 此為一個於眾函數集結下進行的一個 [[群]], 被稱為 [[仿射群]] 普通矩陣向量乘法總將原點映射至原點,因此無法呈現平移(原點必須映射至其他點)。藉由於所有向量上擴增一座標 “1”,我們將原空間映至更高維空間的一個子集合以進行變換。在該空間中,原本之空間佔有了擴長座標一的1的子集合。 因此原空間的原點可在(0,0, ... 0, 1). 原空間的平移可藉由更高維度空間的線性轉換來達成(即為[[錯切|錯切變換]])。在高維度中的座標即為 [[齊次座標]]的一例。 假如原空間為[[歐幾里德空間|歐幾里德]], 則更高維空間為[[實射影空間]]. 使用齊次座標的優點為,藉由相對應矩陣之乘積,可將任意數目的仿射變換[[複合函數|結合]]為一。此性質被大量運用於 [[計算機圖形]], [[計算機視覺]] 與[[機器人學]]。 ==性質== 一仿射變換保留了: # 點之間的共線性,例如通過同一線之點(即稱為共線點)在變換後仍呈共線。 # 向量沿著一線的比例,例如對相異共線三點<math>p_1,\, p_2,\, p_3,</math>,<math>\overrightarrow{p_1p_2}</math> 與 <math>\overrightarrow{p_2p_3}</math>的比例同於<math>\overrightarrow{f(p_1)f(p_2)}</math>及<math>\overrightarrow{f(p_2)f(p_3)}</math>。 # 帶不同質量的點之[[質心]]。 一仿射變換為可逆的[[若且唯若]]A為可逆的。在矩陣表示中,其反元素為 :<math> \begin{bmatrix} A^{-1} & -A^{-1}\vec{b} \ \\ 0,\ldots,0 & 1 \end{bmatrix} </math> 可逆仿射變換組成[[仿射群]],其中包含具n階的[[一般線性群]]為子群,且自身亦為一n+1階的一般線性群之子群。 當A為常數乘以[[正交矩陣]]時,此子集合構成一子群,稱之為[[相似_(幾何)|相似變換]]。舉例而言,假如仿射變換於一平面上且假如A之[[行列式]]為1或-1,那麼該變換即為[[等面積變換]]。此類變換組成一稱為等仿射群的子集。一同時為等面積變換與相似變換之變換,即為一平面上保持[[歐幾里德距離]]不變之[[等距同构|保距映射]]。 這些群都有一保留了原[[定向_(向量空間)|定向]]的子群,也就是其對應之''A''的行列式大於零。在最後一例中,即為三維中[[剛體]]運動之群(旋轉加平移)。 假如有一不動點,我們可以將其當成原點,則仿射變換被縮還到一線性變換。這使得變換更易於分類與理解。舉例而言,將一變換敘述為特定軸的旋轉,相較於將其形容為平移與旋轉的結合,更能提供變換行為清楚的解釋。只是,這取決於應用與內容。 ==實例== ===實數之仿射變換=== 函數{{nowrap|1=''f'' : '''R''' → '''R'''}}, {{nowrap|1=''f''(''x'') = ''mx'' + ''c''}} ,其中''m''與''c''為常數,此即為一般之仿射變換。 ===有限體的仿射變換=== 以下等式表示了[[有限體]](2<sup>8</sup>)中的仿射變換: :<math> \{\,a'\,\} = M\{\,a\,\} \oplus \{\,v\,\}, </math> 此處[M]為矩陣 且 {v} 為向量 : {| |- | 此處 [M] 為 [[矩陣]] 且 {''v''} 為 [[向量]] :<math>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} </math> :<math>\{\,v\,\}= \begin{bmatrix} 1 \\ 1 \\ 0 \\ 0 \\ 0 \\ 1 \\ 1 \\ 0 \end{bmatrix}.</math> |} 舉例來講,將以[[字節序|大端序]]二進位表示的元素{a} = ''y''<sup>7</sup> + ''y''<sup>6</sup> + ''y''<sup>3</sup> + ''y'' = {11001010}轉換成[[字節序|大端序]]十六進位,計算如下: :<math>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</math> :<math>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</math> :<math>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</math> :<math>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</math> :<math>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</math> :<math>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</math> :<math>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</math> :<math>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.</math> 于是, {a′} = y7 + y6 + y5 + y3 + y2 + 1 = {11101101} = {ED}。 ===平面幾何之仿射變換=== [[File:Geometric affine transformation example.png|thumb|250px|一個實數平面上的簡單仿射變換]] 在 ℝ<sup>2</sup>,左方所示之變換即為以下映射: :<math>\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}</math> 將原紅色三角形之三個[[頂點 (幾何)|頂點]]作變換後給出了新藍色三角形的三個頂點。事實上,所有三角形皆可由仿射變換來達成,所有平行四邊形也可以,但一般四邊形不行。 == 参看 == * [[变换矩阵#仿射变换|仿射变换的变换矩阵]] * [[平移#矩阵表示|平移的矩阵表示]] * [[仿射群]] * [[仿射几何]] * [[线性]](第二个意思是在1维中的仿射变换) * [[三维投影]] {{分形}} [[Category:仿射几何|*]] [[Category:線性代數|F]]
本页使用的模板:
Template:Cite book
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Nowrap
(
查看源代码
)
Template:分形
(
查看源代码
)
返回
仿射变换
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息