矩陣是動詞,不是名詞
把 矩陣 讀作一個 線性變換:一個接收 向量 並把它送到新位置的函數。把它一次性作用到每一個點上,你就會看到整個空間發生平移、旋轉、拉伸或壓扁。*線性*這個詞承諾兩件事:網格線保持筆直、間距均勻,而且原點永遠不動。
各行就是基向量的落點
關鍵的訣竅在這裡。變換矩陣 是一行一行搭起來的:第一行是 (1,0) 的去向,第二行是 (0,1) 的去向。要變換任意向量,就用這個向量的座標去縮放這兩個落點再相加——這恰好就是矩陣乘向量。
A = [[2,1],[0,3]] (1,0) lands at (2,0) <- first column (0,1) lands at (1,3) <- second column so A*(x,y) = x*(2,0) + y*(1,3) = (2x+y, 3y)
一個小小的變換動物園
一旦你把各行讀作落點,常見的變換一眼就能認出來。注意每一個不過是在描述 (1,0) 與 (0,1) 最終落在哪裡。
- 縮放 [[2,0],[0,3]]:把 x 拉伸 2 倍、y 拉伸 3 倍——一次乾淨的拉伸,座標軸仍是座標軸。
- 旋轉 90 度 [[0,-1],[1,0]]:(1,0) 轉到 (0,1),(0,1) 轉到 (-1,0)——整個平面都轉了過來。
- 錯切 [[1,1],[0,1]]:(1,0) 不動,但 (0,1) 滑到 (1,1)——正方形被斜成了平行四邊形。