仿射变换中,切边容易误解
切边shear:
平行四边形变换:
平行四边形变换 | 同 | shear切边 | |
---|---|---|---|
四条边长不变(周长不变) | 底边顶边不变 | 左右斜边长改变(周长边) | |
面积变化 | 都是群 | 面积不变 | |
高度变化 | 都为x方向平移 | 高y不变 | |
非线性(需要增广) | 都是仿射变换 | 线性变换 |
shear切边
$$x1 = x + y \times tan\beta$$
$$y1 = y$$
变换矩阵为:
$$\left( \begin{array}{cc} 1 & tan\beta \\ 0 & 1 \end{array} \right)$$
平行四边形变换:
不是简单的变换,可以看为旋转的共轭操作,(左移,顺时针旋转,右移)
关键在于把旋转中心对齐到原点
1、旋转中心左移x
2、顺时针旋转$$\alpha$$
3、旋转中心右移x(原来的大小)
变换矩阵为:(平移为非线性变换,必须增广“齐次”)
$$\left( \begin{array}{ccc} 1 & 0 & x \\ 0 & 1 &0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} cos\alpha & sin\alpha & 0 \\ -sin\alpha & cos\alpha &0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} 1 & 0 & -x \\ 0 & 1 &0 \\ 0 & 0 & 1 \end{array} \right)$$
注意:初始角度不为0的,左右(上下)平移大小不再是x,而是旋转中心的$$\color{red}{(x_0,y_0)}$$ ,因为实质是 圆心(旋转中心)的平移
$$\left( \begin{array}{ccc} 1 & 0 & x_0 \\ 0 & 1 & y_0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} cos\alpha & sin\alpha & 0 \\ -sin\alpha & cos\alpha &0 \\ 0 & 0 & 1 \end{array} \right) \left( \begin{array}{ccc} 1 & 0 & -x_0 \\ 0 & 1 & -y_0 \\ 0 & 0 & 1 \end{array} \right)$$