仿射變換(affine transformation)
仿射變換是把線性扭曲與平移結合在一起的單一動作。想像拿一張有彈性的方格紙,只要保持格線筆直、平行格線維持平行,你愛怎麼拉伸、剪切都行,然後把整張紙在桌上滑過去。這個合起來的效果——先線性扭曲、再平移——就是仿射變換。它是永遠把直線送成直線、使平行線維持平行的最一般映射。
用座標寫出來,規則有乾淨的形狀。平面的仿射變換把點 (x, y) 送到 A 乘以行向量 (x, y) 再加上一個固定的平移向量,其中 A 是可逆的 2 乘 2 矩陣,平移向量負責那一步平移。寫開來,(x, y) 映到 (a x + b y + e, c x + d y + f),其中矩陣 [a, b; c, d] 須有非零行列式,映射才能被還原。矩陣部分使各方向彎折與縮放;向量部分把一切整體搬動而不扭曲。由於矩陣允許不等地縮放並剪切,仿射變換一般會改變長度與角,但它永遠保持三樣東西:共線性、平行性、以及一點沿線分一線段所成的比。其內含兩個特殊家族:相似變換(矩陣是縮放乘旋轉或反射)與剛體運動(矩陣是純旋轉或反射)。
仿射變換是仿射幾何的工作工具,在應用中無處不在:電腦繪圖用它們在單一矩陣步驟中旋轉、縮放、剪切、重新定位影像;它們關聯由直軸建立的任意兩個座標系。一個對證明有用的事實是:平面的仿射映射完全由它把任意三個不共線點送到哪裡所決定——固定三角形三頂點的像,整個映射就被釘死。常見的陷阱是以為仿射映射保持角或形狀;只有較窄的相似變換才如此,而一般的仿射映射會把圓變成橢圓。
映射 (x, y) -> (2x, x + y) 是仿射的:其矩陣 [2, 0; 1, 1] 的行列式為 2,非零,所以可逆。它把水平展開加倍並在垂直方向剪切,把單位正方形變成平行四邊形。原點原地不動,因為沒有平移項;三個角 (1,0)、(0,1)、(1,1) 分別移到 (2,1)、(0,1)、(2,2)。
仿射映射是一個矩陣部分(行列式非零)加上一個平移;它保持直線與平行性。
仿射變換保持平行性與沿線比值,但不保持角或絕對長度——唯有相似變換這個特殊子家族保持形狀,所以一般的仿射映射把圓送成橢圓。