购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.2 二维平面图形变换

二维平面图形的周边,不论是由直线段组成的还是由曲线段组成的,都可以用周边上顺序排列的平面点来描述,同样的点如果连接顺序不同,那么可能生成的二维图形也不同。如图2-14所示,如按 A B C D E A 连接,则可得到如图2-14a所示;如按 A B D C E A 连接,则可得到如图2-14b所示的二维图形。

图2-14 同一点集、不同的连线顺序所形成的二维图形

二维平面图形的几何变换就是在不改变图形连线顺序的情况下,对一个平面点集进行线性变换,这些变换包括位置改变(如平移、旋转)和变形(如缩放比例、错切、反射等)。

1.平移 平移是将图形对象从位置( x y )移到另一个位置( x' y' )的变换,如图2-15所示。即通过将位移量加到点集中每个点的坐标上,生成一个新的坐标位置,这样我们称为实现了一次平移。实际上,我们将该点从原始位置沿一直线路径移动到了新位置。类似地,对于一个用多个坐标位置定义的对象(如四边形),可以通过对所有坐标位置适用相同的位移量沿平行路径重新定位来实现平移,然后在新位置显示完整的对象。

图2-15 平移前后

式(2-1)为平移变换公式。

式(2-1)中 t x = x' - x ,为横向平移距离; t y = y' - y ,为纵向平移距离,一对平移距离( t x t y )称为平移向量或位移向量。

平移矩阵运算公式用式(2-2)表示。

2.旋转 旋转是以某个参考点为圆心,将图形对象上的各个点 p x y )围绕圆心转动一个逆时针角度记为 θ ,变为新的坐标 p' x' y' )的变换,如图2-16所示。

图2-16 旋转

(1)当参考点为(0,0)时,旋转公式用式(2-3)表示。

由于 x = r cos φ y = r sin φ ,所以旋转公式2-3可化为式(2-4)。

(2)当参考点不是(0,0),而是任意一点 p x t y t )时,如果绕 p x t y t )点的旋转应由以下3个步骤来完成:①将对象平移, t x =- x t t y =- y t ;②按式(2-4)做旋转变换;③平移, t x = x t t y = y t 。组合这3个步骤,当参考点为 p x t y t )时,其旋转公式用2-5表示。

式2-6为旋转的矩阵运算表示式。

3.比例变换 比例变换是使对象按比例因子 S x S y 放大或缩小的变换,如图2-17所示。

图2-17 比例变换

式(2-7)为比例变换公式。

通过图2-18可以看出,当按照式2-7作比例变换时,不仅图形对象的大小发生了变化,而且对象离原点的距离也发生了变化。如果只想变换图形对象的大小,而不改变图形对象离原点的距离,则可以用固定点变比。以 m 为固定点进行变比的方法:①作平移 t x =- x m t y =- y m ;②按式2-7作比例变换;③作(1)的逆变换,即作平移 t x = x m t y = y m

图2-18 按 x 轴反射

当比例因子 S x S y 小于0时,图形对象不仅改变大小,而且同时按 x 轴或 y 轴被反射。反射情况如下3种。

(1)当 S x =1, S y =-1时的变化如图2-18所示,此时按 x 轴反射。

(2)当 S x =-1, S y =1时的变化如图2-19所示,此时按 y 轴反射。

图2-19 按 y 轴反射

(3)当 S x =-1, S y =-1时的变化如图2-20所示,此时按原点(0,0)反射。

图2-20 按原点反射

式(2-8)为比例变换的矩阵运算表示。

4.错切 前面提到的各种图形变换,只改变原图的大小、安放角度和位置,并不改变图形的形状。图形的错切变换不同。错切是一种使图形对象的形状发生变化的变换,它要根据线性规律使图形变形,来达到像书本被打开或房子倒塌的图形效果。图形对象的错切变换包括图形在 y 轴方向的切变和在 x 轴方向的切变两种,它们的变换效果如图2-21所示,图2-21a为原图,图2-21b为图形 y 方向切变,图2-21c为图形 x 方向切变(tanα≈α)。

图2-21 平面图形的错切变换

(1)平面图形在 y 方向上的切变 图形在 y 方向上的错切变换要求变换后的图形 x 坐标值不变, y 坐标值与原图的 x 坐标值呈线性关系。式(2-9)为 y 方向切变的变换数学表达式。

(2)平面图形在 x 方向上的切变 图形在 x 方向上的错切变换要求变换后的图形 y 坐标值不变, x 坐标与原图的 y 坐标值呈线性关系。式(2-10)为 x 方向切变的变换数学表达式。

式(2-11)为一般错切变换的公式。

式(2-12)为其矩阵形式。 tvTteHwR6crtz8xh724Y4Kabgv8CJPjobzfbOZcVqOKeFV6gqhfMe9fVfTVq+aBQ

点击中间区域
呼出菜单
上一章
目录
下一章
×