2D常见变换矩阵表示

474 阅读1分钟

刚性变换,只有物体的位置(平移变换)和朝向(旋转变换)发生改变,而形状不变,得到的变换称为刚性变换。刚性变换是最一般的变换。

通过二维平移和旋转矩阵的组合可以创建一个表示非翻转刚性变换的对象。

相似变换,由一个图形到另一个图形,在改变的过程中保持形状不变(大小方向和位置可变),得到的变换称为相似变换。 相似变换,使用二维平移、旋转和缩放的组合创建一个表示非翻转相似变换对象。

仿射变换,在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。 仿射变换,使用二维变换矩阵的任意组合来创建一个表示一般仿射变换

平移变换的矩阵表示

[10tx01ty001]\left[ \begin{matrix} 1 & 0 & tx \\ 0 & 1 & ty \\ 0 & 0 & 1 \\ \end{matrix} \right]

旋转变换的矩阵表示 θ 指定围绕原点的旋转角度(以度为单位)。

[cos(θ)sin(θ)0sin(θ)cos(θ)0001]\left[ \begin{matrix} cos(θ) & -sin(θ) & 0 \\ sin(θ) & cos(θ) & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right]

缩放变换的矩阵表示

[sx000sy0001]\left[ \begin{matrix} sx & 0 & 0 \\ 0 & sy & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right]

剪切变换的矩阵表示

[1shx0shy10001]\left[ \begin{matrix} 1 & shx & 0 \\ shy & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right]

翻转变换的矩阵表示

[cos(2φ)sin(2φ)0sin(2φ)cos(2φ)0001]\left[ \begin{matrix} cos(2φ) & sin(2φ) & 0 \\ sin(2φ) & -cos(2φ) & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right]

φ指定翻转轴的角度,以度为单位。两种常见的翻转为垂直翻转和水平翻转。垂直翻转是围绕X轴的翻转,因此φ为0,翻转矩阵简化为:

[100010001]\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right]

水平翻转是围绕 y 轴的翻转,因此 φ 为 90,翻转矩阵简化为:

[100010001]\left[ \begin{matrix} -1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{matrix} \right]