1、计算机图形学与数字地图第第5 5章章 二维图形变换与裁剪二维图形变换与裁剪Email: 第第5 5章章 二维图形变换与裁剪二维图形变换与裁剪5.1 二维图形变换5.2 二维图形裁剪 5.3 二维图形求交 5.4 地图中的变换5.15.1 二维图形变换二维图形变换5.1.1 二维图形变换基本原理5.1.2 基本几何变换的解析表示5.1.3 几何变换的齐次坐标表示5.1.4 组合变换l 在计算机绘图应用中,经常要实现从一个几何图形到另一个几何图形的变换。例如,将图沿某一方向平移一段距离;将图形旋转一定的角度;或将图形放大;反之把图形缩小等等。这些图形变换的效果虽然各不相同,本质上却都是依照一定的规
2、则,将一个几何图形的点都变为另一个几何图形的确定的点,这种变换过程称为几何变换几何变换。 l 二维平面图形的几何变换是指在不改变图形连线次序的情况下,对一个平面点集进行的线性变换。 5.1.1 5.1.1 二维图形变换基本原理二维图形变换基本原理l 二维平面图形变换的结果有两种,一是使图形产生位置的改变;另一种是使图形产生变形,例如把图形放大。对二维图形进行几何变形有五种基本变换形式,它们是:平移、旋转、比例、对称和错切。二维图形变换二维图形变换 二维图形顶点的变换二维图形顶点的变换 平面上有一直线段AB,将它分别沿X方向,Y方向平行移l个单位后,得到直线段AB,假设AB两端点坐标分别为(x1
3、,y1)、(x2,y2),如下图所示,我们来验证,只要对AB的两端点进行同样的平移变换,就可得到变换后的直线AB。 5.1.1 5.1.1 二维图形变换基本原理二维图形变换基本原理对AB的两端点(x1,y1)(x2,y2)进行平移,得: myylxx1111 myylxx2222由(x1,y1),(x2,y2)组成一条新的直线段A B其方程为: 即 (422)121211xxyyxxyy121211xxyylxxmyy5.1.1 5.1.1 二维图形变换基本原理二维图形变换基本原理在原直线段AB上任取一点(x*,y*),显然满足直线段AB的方程: 对(x*,y*)作同样的平移变换: 12121
4、1*xxyyxxyy myylxx*将(x*,y*)代入新的直线AB的方程(4-22)中, 右边)23-4根据式(*)*()*(*左边1212111111xxyyxxyylxlxmymylxxmyy(423)5.1.1 5.1.1 二维图形变换基本原理二维图形变换基本原理121211xxyylxxmyy(422)结论:结论:对直线段进行平移变换只要其端点进行同样的变换。用同样的方法,可进一步证明:对直线段进行比例旋转、反射、错切等其它几何变换也只要对该直线段的端点进行同样的变换。 当对组成图形的所有直线段作同一几何变换后,对这一幅图形便作了相同的几何变换,所以,对图形进行几何变换只要对其所有直
5、线段进行同样的几何变换,而对直线段的几何变换又归结为对端点的几何变换,因此,我们说,对图形作几何变换,其实质是对点的几何变换。 5.1.1 5.1.1 二维图形变换基本原理二维图形变换基本原理l)平移变换 平面上一点P(x,y),如果在X轴方向的平移增量为tx,在Y轴方向平移增量为ty时,则平移后所得新点P(x,y)坐标表达式为: x = x + tx, y = y + ty 我们把这一变换称为平移变换平移变换。 5.1.2 5.1.2 基本几何变换的解析表示基本几何变换的解析表示平移变换只改变图形的位置,不改变图形的大小和形状P(x,y)P (x,y)xytxty 2 2)比例变换)比例变换
6、 一个图形中的坐标点(x,y),若在X轴方向有一个比例系数Sx,在Y轴方向有一个比例系数Sy,则该图形的新坐标点(x,y)的表达式为 x = xSx y = ySy; 这一变换称为比例变换比例变换。 比例变换不仅改变图形的位置,而且改变图形的大小 5.1.2 5.1.2 基本几何变换的解析表示基本几何变换的解析表示(1)当 时,为恒等比例变换,即图不变;(2)当 时,图形沿两坐标轴方向等比例缩小;(3)当时,图形沿两个坐标轴方向等比例放大;(4)当 时,图形沿两个坐标轴方向作非均匀的比例变化。1ssyx1ssyx1ssyxssyxx = xSx y = ySy; 5.1.2 5.1.2 基本几
7、何变换的解析表示基本几何变换的解析表示3 3)旋转变换)旋转变换 若图形中的坐标点(x,y)绕坐标原点逆时针旋转一个角度,则可得到图中所示的(x, y), 该变换被称为旋转变换。(x,y)(x,y)xy 变换后的新坐标(x,y)与变换前的坐标(x,y)的关系为: x = xcos - ysiny = xsin + ycos 旋转变换只能改变图形的方位,而图形的大小和形状不变, 5.1.2 5.1.2 基本几何变换的解析表示基本几何变换的解析表示4 4)对称变换)对称变换如果经过变换后所得到的图形与变换前的图形关于X坐标轴是对称的,则称此变换为关于X X轴的对称变换轴的对称变换。经过这一变换后的
8、坐标点(x,y)与变换前的对应坐标点(x,y)的关系为:x = x, y = -yY Y轴的对称变换:轴的对称变换: x = -x,y = y中心对称变换:中心对称变换:x = -x,y = -y对称变换只改变图形方位,不改变其形状和大小。 5.1.2 5.1.2 基本几何变换的解析表示基本几何变换的解析表示5 5)错切变换)错切变换如果变换前坐标点(x,y)与变换后对应的新坐标点(x,y)的关系为:x = x + cy,y = y我们称这一变换为沿X X轴的错切变换轴的错切变换,式中c为错切系数。若变换前后对应点的坐标关系为:x = x, y = y + bx 则称此变换为沿Y Y轴的错切变
9、换轴的错切变换,其中b为错切系数。错切变换不仅改变图形的形状,而且改变图形的方位,但图形中的平行关系不变。 5.1.2 5.1.2 基本几何变换的解析表示基本几何变换的解析表示l 平移、比例、旋转、对称和错切变换统称为基本基本的图形变换的图形变换,绝大部分复杂的图形变换都可以通过这些基本交换的适当组合来实现。 5.1.2 5.1.2 基本几何变换的解析表示基本几何变换的解析表示任何一个复杂图形都是由任意多个有序点集连线而成。在解析几何学中。在二维空间内,平面上的点可以用一行两列矩阵x y或两行一列矩阵来表示。由此,一个由n个点的坐标组成的复杂图形可以用n2阶矩阵表示: nxxxx.321 ny
10、yyy.321这种图形的表示法称为二维图形的矩阵表示法。这种图形的表示法称为二维图形的矩阵表示法。5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示由此可知,图形的变换可用矩阵运算来实现。具体说就是由构成图形的点集的矩阵与T= 矩阵乘法运算,即我们称T= 为二维图形变换矩阵,其中点集中任意一点(x,y)变换后坐标为: ca db nnnnnncybxdybxdybxcyaxcyaxcyaxdbcayyyxxx.221122112121 dbca 是是变变换换后后的的坐坐标标式式中中yxyxdybxcyaxdbcayx 5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐
11、次坐标表示1)比例变换 若令变换矩阵 则写成矩阵形式为: daT00 00yxdyaxdayx 若取a=3 d=1 对点(2,3)做变换,则 可以看出,a1, d=1,变换后图形沿X方向放大, 显然,当0a1时,则使图形沿Y方向放大 36100332 yx5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示a a11, d=1 d=1,变换后变换后图形沿图形沿X X方向放大方向放大 当当a=1a=1,d1d1时,则使时,则使图形沿图形沿Y Y方向放大方向放大 5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示若取a=1,d=0,图形沿Y方向压缩成线段,如下图所
12、示当a=1,d=1变换后图形没有变化,称这种变换矩阵为恒等矩阵。 4321000024420001442224424321 yxyx5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示若取a=d=1.5对下图中(a)矩阵1 2 3 4做变换,则各点在X,Y两个方向产生相等的比例变换,即变换后图形和变换前图形相似,相似中心为坐标原点。 若ad时,使图形在X和Y两个方向产生不相等比例变换。下图(b)是a=2,d=1.5时对 (a)中矩阵1234变换结果。 图 (c)是取a=2,d=0.5对矩阵1234变换结果,变换后图形在X方向放大,在Y方向缩小。 4321663336635.10
13、05.1442224424321 5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示2)对称变换 令变换矩阵T 中a = -1,d = 1,即 就可图形对Y轴对称例如:如下图所示 1001T3 215621421001562142321 5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示当a=1,d=1时,图形对X轴对称即 1001T当 时,图形对+45度线对称 当 时,图形45度线对称 0110T 0110T图形对图形对+45+45度线对称度线对称图形对图形对- -4545度线对称度线对称5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示
14、3)错切变换 当变换矩阵中的a=d=1,b与c中一个为零,另一个为正 数或负数时,即 ,它对图形的作用是使图 形产生沿一个坐标方向错切。 101kTykxxkyxyx1015.1.3 5.1.3 几何变换的矩阵表示几何变换的矩阵表示例如:由下图可见,图形沿+Y方向错切,这是对在第一象限内的点而言。当 时,它使第一象限内图形沿+X方向错切 43213612122111014411-12214321 101kT5.1.3 5.1.3 几何变换的矩阵表示几何变换的矩阵表示4)旋转变换 旋转变换是指坐标轴不动,点或图形绕坐标原点旋转角,以逆时针方向取正值。如下图所示,其变换矩阵则 cossinsinc
15、osT cossinsincosyxyx5.1.3 5.1.3 几何变换的矩阵表示几何变换的矩阵表示逆时钟旋转=90度时,变换矩阵顺时针旋转= -90度时,顺时针旋转=180度时, 下图是矩阵旋转30度的情况,其坐标变换如下: 0110T 1001T 134. 0866. 1134. 0886. 1232. 2232. 1232. 2232. 1886. 05 . 05 . 0866. 011112222011-0T5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示1) 齐次坐标与平移变换前面四种变换都可以通过变换矩阵来实现,那么它是否适合于平移变换呢?变换前后的坐标必须满足
16、下面的关系:这里tx,ty是平移量,应为常数,但是应用上述的变换矩阵对点进行变换: dbcaT tyyytxxx yxdybxcyaxdbcayx 这里,cy,bx均非常,因此用原来的22的变换矩阵是无法实现平移变换的。5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示我们把22矩阵扩充为32矩阵,即令:但这样又带来新的问题,二维图形的点集矩阵是n2阶的,而变换矩阵是32阶的,根据矩阵乘法规则,它们是无法相乘的。为此,我们把点向量也作扩充,将 扩展为 ,即把点集矩阵扩充为n3阶矩阵。这样,点集矩阵与变换矩阵即可以进行乘法运算: mdblcaT yx 1yx mdybxlcya
17、xmdblcayx 15.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示对点进行平移变换:对点进行平移变换:这里L,m分别为x,y方向的平移量。 为使二维变换矩阵具有更多的功能,可将32变换矩阵进一步扩充成33阶矩阵,即:则平移变换矩阵为:则平移变换矩阵为: mlTt1001 mylxmlyx 10011 sqpmdblcaT 1001001mlTt5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示对点进行平移变换:对点进行平移变换: 1110010011yxmylxmlyx 例:设例:设l = 20l = 20,m = 20m = 20,对下图中的字母对下
18、图中的字母T T做平移变换得:做平移变换得:1111111148485252484840403632324444404036100201020011111111128283232282820201612122424202016HGFEDCBAHGFEDCBAyxyx 5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示如上讨论,在平移变换中,我们将 扩充为 , 实际上是由二维向量变为三维向量,但 可以看作是z = 1平面上的点,也就是说,经此扩充后,图形落在了z = 1的平面上,它对图形的形状没有影响。 这种用
19、三维向量表示二维向量的方法叫做齐次坐标法。进一步推广,用n+1维向量表示n维向量的方法称之为齐次坐标法。 齐次坐标表示中,一个点可以有多个坐标。无穷远处点的表示,常数为0 yx 1yx 1yx2)二维图形齐次坐标矩阵变换对于前面介绍基本变换可用二维图形齐次坐标变换矩阵一般表达式这33矩阵中各元素功能一共可分成四块,即 这个22子矩阵可以实现图形的比例、对称、 错切、旋转等基本变换; 可以实现图形平移变换; 可以实现图形透视变换; 可以实现图形全比例变换。 sqpmdblcaT dbca ml qp s5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示例如,用矩阵 对图形进行变
20、换: 当s1时,图形产生整体比例缩小。当s=1时,图形大小不变。由此表明,齐次坐标的应用,扩大了变换矩阵功能,只要对矩阵中有关元素赋以不同的 值,即可达到预期变换目的。 sT00010001 1000100011sysxsyxsyx-5.1.3 5.1.3 几何变换的齐次坐标表示几何变换的齐次坐标表示对称变换对称变换 上述的五种二维图形几何变换是二维图形几何变换中的最基本的几何变换,在进行这些基本的几何变换时,我们给定了一些特定的约束条件,如:旋转变换是指绕坐标原点的旋转,比例变换是关于坐标原点的放大或缩小等等,因而是几何变换中的一些简单情形。实际中的二维图形作几何变换时要复杂得多,往往是多种
21、基本的几何变换复合而成的,因此我们把由若干个基本的几何变换复合而成为一个几何变换的过程称为组合变换组合变换,也称为几何变换的级联。5.1.4 5.1.4 组合变换组合变换1)绕任意点旋转变换平面图形绕任意点p(xp,yp)旋转角,需要通过以下几个步骤来实现:(1)将旋转中心平移到原点,变换矩阵为: 10010011ppyxTYXp p(x xp p,y yp p)5.1.4 5.1.4 组合变换组合变换(2) 将图形绕坐标系原点旋转角 ,变换矩阵为: 1000cossin0sincos2 TYX(3) 将旋转中心平移回到原来位置,变换矩阵为: syxTpp0010013YX5.1.4 5.1.
22、4 组合变换组合变换因此,绕任意点p的旋转变换矩阵为: 显然,当xp=0,yp=0时,即为对原点的旋转变换矩阵。5.1.4 5.1.4 组合变换组合变换100)cos1(sincossinsin)cos1(sincosppppyxyxsyxyxTTTTpppp0010011000cossin0sincos1001001321问题:T1,T2,T3的顺序能不能换? 2)对任意点做比例变换 设任意一点p(xp, yp) ,作比例变换需通过以下步骤来完成: (1)将P点移到坐标原点,变换矩阵为: 10010011ppyxTYX5.1.4 5.1.4 组合变换组合变换(2 2)作关于原点的比例变换,变
23、换矩阵为:)作关于原点的比例变换,变换矩阵为:(3 3)对原点作反平移变换,移到原来的位置:)对原点作反平移变换,移到原来的位置: 10000001daTYX 10010013ppyxTYX5.1.4 5.1.4 组合变换组合变换对任意点P作比例变换,其变换矩阵为 100)1(0)1(000100110000001001001321dydaxasyxdayxTTTTpppppp5.1.4 5.1.4 组合变换组合变换5.1.4 5.1.4 组合变换组合变换3)对任意直线对称变换如下图所示,设任意直线的方程为:Ax+By+C=0,直线在X轴和Y轴上的截矩分别C/A和C/B,直线与X轴的夹角为,=
24、arctg(A/B)。YX-C/B-C/A 对任意直线的对称变换由以下几个步骤来完成:(1)平移直线,使其通过原点(可以沿X向和Y向平移,这里沿X向将直线平移到原点),变换矩阵为: 100010/011ACTYX5.1.4 5.1.4 组合变换组合变换(2)绕原点旋转,使直线与某坐标轴重合(这里以与X轴重合为例),变换矩阵如下: 1000cossin0sincos1000)cos()sin(0)sin()cos(2 TYX5.1.4 5.1.4 组合变换组合变换 (3)对坐标轴对称变换(这里是对X轴), 其变换矩阵为: 1000100013TYX5.1.4 5.1.4 组合变换组合变换(4)绕
25、原点旋转,使直线回到原来与X轴成角的位置,变换矩阵为: 1000cossin0sincos4 TYX5.1.4 5.1.4 组合变换组合变换(5)平移直线,使其回到原来的位置,变换矩阵为: 100010/015ACTX5.1.4 5.1.4 组合变换组合变换通过以上五个步骤,即可实现图形对任意直线的对称变换,其组合变换矩阵如下: 100/2sin2cos2sin/)12(cos2sin2cos54321ACACTTTTTT 5.1.4 5.1.4 组合变换组合变换作业作业1 1:对于给定各顶点坐标A(3,0),B(4,2),C(6,0)的三角形,使其先做关于直线x+y+1=0的对称变换,然后再顺时针绕A点做90选择变换,请写出各变换步骤的矩阵以及最终的变换矩阵。要求独立完成,周四上午交作业。 5.1.4 5.1.4 组合变换组合变换