鏡像、正交投影和切變的推導都可根據(jù)縮放變形而來。在要縮放方向上去縮放因子k,如果|k|<1,物體"收縮", |k|>1,物體“膨脹”;k=0,正交投影;k<0,鏡像; 切變稍有不同。
1. 縮放
01. 沿坐標軸縮放 2D中有兩個縮放因子Kx和Ky,p和q是原來的基向量,縮放因子單獨影響基向量,得到p`和q`:
得到縮放矩陣:
3D中增加縮放因子Kz
02.沿任意方向縮放 設n為平行于縮放方向的單位向量,k為縮放因子,縮放沿著穿過原點的并平行于n的直線(2D中)或平面(3D中)進行。 先討論2D中的推導過程。我們需要推導一個表達式,給定向量v,可以通過v,n和k來計算v`。將v和v`分解為平行和垂直于n的分向量
v||是v在n上的投影
v⊥垂直于n,不會受縮放影響
v`||受縮放因子影響
推導得到v`
通過表達式來推導基向量
通過基向量構建矩陣,得到以單位向量n為縮放方向,以k為縮放因子的縮放矩陣
同樣的原理運用在3D中
是scale(縮放)的縮寫S(n,k)表示縮放矩陣
2.正交投影 投影意味和降維操作,將所有的點拉平到要投影的直線或平面上,從原來的點到投影點的直線相互平行,這就是正交投影。透視投影是另一種投影。
01. 向坐標軸或平面上投影 通過將垂直方向上縮放因子設為0來實現(xiàn),如將3D點投影到xy平面,則拋棄z分量,通過將z方向上的縮放因子設為0實現(xiàn)。 P是projection(投影)的縮寫,2D中,Px表示向x軸投影,Py同理:
3D中,Pxy表示向xy平面投影,其余同理:
02. 向任意指向或平面投影 投影有垂直于直線或平面的向量n定義,通過使n方向上的縮放因為0就能導出任意方向的投影矩陣。P(n)表示向垂直于向量n的軸或平面投影矩陣,S(n,0)表示在n方向上的縮放因子為0的縮放矩陣. 2D:
3D:
3. 鏡像 也叫做反射,與正交投影相似,正交投影將縮放值k設為0,而鏡像則設為-1.
R是reflect(反射)的縮寫。2D:
3D:
4.切變(Shearing) 切變是坐標系的變換,非均勻的拉伸。切變時候,角度變化,但是面積或體積不變。也可以理解為坐標軸間的角度變化,造成的扭曲。 如下圖,這是x坐標根據(jù)y坐標的切變,機器人的y坐標沒有變化,只有x坐標變化了,變化后的坐標x`可以理解為將y坐標乘以切變因子s與原坐標x的和:x` = x + sy。如果是3D則增加z坐標的切變因子t: x` = x + sy,y` = y + tz
2D中切變矩陣為: x坐標根據(jù)y坐標的切變
y坐標根據(jù)x坐標的切變
x,y坐標被z坐標切變
|
|