《《维图形变换》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《维图形变换》PPT课件.ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4章章 二维变换及二维观察二维变换及二维观察14.54.5二维图形变换二维图形变换一、图形变换基本概念一、图形变换基本概念1 1、定义、定义即对原图形进行平移、旋转、缩小或放大等变换操作即对原图形进行平移、旋转、缩小或放大等变换操作。在计算机图形显示或绘图输入过程中,往往需要对图在计算机图形显示或绘图输入过程中,往往需要对图形指定部分的形状、尺寸大小及显示方向进行修改,形指定部分的形状、尺寸大小及显示方向进行修改,以达到改变整幅图形的目的,这就需要对图形进行平以达到改变整幅图形的目的,这就需要对图形进行平移、旋转、缩小或放大等变换操作。因此,图形变换移、旋转、缩小或放大等变换操作。因此,图
2、形变换是计算机绘图基本技术之一,利用它可以用一些很简是计算机绘图基本技术之一,利用它可以用一些很简单的图组合成相当复杂的图,可以把用户坐标系下的单的图组合成相当复杂的图,可以把用户坐标系下的图形变换到设备坐标系下。利用图形变换还可以实现图形变换到设备坐标系下。利用图形变换还可以实现二维图形和三维图形之间转换,甚至还可以把静态图二维图形和三维图形之间转换,甚至还可以把静态图形变为动态图形,从而实现景物画面的动态显示,下形变为动态图形,从而实现景物画面的动态显示,下面主要讨论二维图形变换。面主要讨论二维图形变换。22 2、图形变换分类、图形变换分类图形变换有两种形式:图形变换有两种形式:视象变换视
3、象变换:图形不动,而坐标系变动,即变换图形不动,而坐标系变动,即变换前与变换后的图形是针对不同的坐标而言的,前与变换后的图形是针对不同的坐标而言的,也称之为坐标模式也称之为坐标模式几何变换几何变换:另一种是坐标系不动,而图形改变,另一种是坐标系不动,而图形改变,即变换前与变换后的坐标值是针对同一坐标系即变换前与变换后的坐标值是针对同一坐标系而言的,也称之为图形模式变换,而言的,也称之为图形模式变换,实际应用中后种图形变换更具有实际意义,实际应用中后种图形变换更具有实际意义,我们讨论的图形变换主要是属于后一种变换我们讨论的图形变换主要是属于后一种变换3二、二维图形几何变换的基本原理二、二维图形几
4、何变换的基本原理11几何变换几何变换 在在计计算算机机绘绘图图应应用用中中,经经常常要要实实现现从从一一个个几几何何图图形形到到另另一一个个几几何何图图形形的的变变换换。例例如如,将将图图沿沿某某一一方方向向平平移移一一段段距距离离;将将图图形形旋旋转转一一定定的的角角度度;或或将将图图形形放放大大;反反之之把把图图形形缩缩小小等等等等。这这些些图图形形变变换换的的效效果果虽虽然然各各不不相相同同,本本质质上上却却都都是是依依照照一一定定的的规规则则,将将一一个个几几何何图图形形的的点点都都变变为为另另一一个个几几何何图图形形的的确确定定的的点点,这这种种变换过程称为几何变换。变换过程称为几何
5、变换。几何变换的规则是可以用函数来表示的。由于一几何变换的规则是可以用函数来表示的。由于一个二维图形可以分解成点、直线、曲线。把曲线离散个二维图形可以分解成点、直线、曲线。把曲线离散化,它可以用一串短直线段来逼近;而直线段可以是化,它可以用一串短直线段来逼近;而直线段可以是一系列点的集合,因此点是构成图形的基本几何元素一系列点的集合,因此点是构成图形的基本几何元素之一。我们先来讨论点的几何变换的函数表示。之一。我们先来讨论点的几何变换的函数表示。4二维平面图形的几何变换是指在不改变图形连线次二维平面图形的几何变换是指在不改变图形连线次序的情况下,对一个平面点集进行的线性变换。序的情况下,对一个
6、平面点集进行的线性变换。二二维维平平面面图图形形的的轮轮廓廓线线,不不论论是是由由直直线线段段组组成成(多多边边形形),还还是是由由曲曲线线段段组组成成,都都可可以以用用它它的的轮轮廓廓线线上上顺顺序序排排列列的的平平面面点点集集来来描描述述,例例如如长长方方形形ABCD,是是由由四四个个角角点点A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4)顺顺序序连连接接而而成成,为为了了使使画画出出的的图图形是闭合的,首尾两点必须连接。形是闭合的,首尾两点必须连接。5 二二维维平平面面图图形形变变换换的的结结果果有有两两种种,一一是是使使图图形形产产生生位位置的改变;另一种是使图形
7、产生变形,例如把图形放大。置的改变;另一种是使图形产生变形,例如把图形放大。对二维图形进行几何变形有五种基本变换形式,它们是:对二维图形进行几何变形有五种基本变换形式,它们是:平移、旋转、比例、对称和错切。平移、旋转、比例、对称和错切。622基本几何变换的解析表示基本几何变换的解析表示(l)平移变换平移变换 平平面面上上一一点点P(x,y),如如果果在在X轴轴方方向向的的平平移移增增量量为为tx,在在Y轴方向平移增量为轴方向平移增量为ty时,则平移后所得新点时,则平移后所得新点P(x,y)坐标表达式为:坐标表达式为:x=x+tx,y=y+ty 我们把这一变换称为平移变换。我们把这一变换称为平移
8、变换。如如果果对对一一图图形形的的每每个个点点都都进进行行上上述述变变换换,即即可可得得到到该该图图形形的的平平移移变变换换。实实际际上上,直直线线的的平平移移变变换换,可可以以通通过过对对其其定定义义端端点点的的平平移移变变换换来来实实现现,对对于于其其它它类类型型的的变变换换这这种种处处理方法也是可行的。理方法也是可行的。平移变换只改变图形的位置,不改变图形的大小和形状平移变换只改变图形的位置,不改变图形的大小和形状tytx7(2 2)比例变换)比例变换 一一个个图图形形中中的的坐坐标标点点(x,y),若若在在X轴轴方方向向有有一一个个比比例例系系数数Sx,在在Y轴轴方方向向有有一一个个比
9、比例例系系数数Sy,则则该该图图形形的的新新坐标点(坐标点(x,y)的表达式为的表达式为x=xSx y=ySy;这一变换称为比例变换。这一变换称为比例变换。比例变换不仅改变图形的位置,而且改变图形的大小比例变换不仅改变图形的位置,而且改变图形的大小 8(3 3)旋转变换)旋转变换 若若图图形形中中的的坐坐标标点点(x,y)绕绕坐坐标标原原点点逆逆时时针针旋旋转转一一个个角角度度,则则该该点点变变换换后后的的新新坐坐标标(x,y)与与交交换换前前的的坐标坐标(x,y)的关系为:的关系为:x=xcos-ysiny=xsin+ycos 旋旋转转变变换换只只能能改改变变图图形形的的方方位位,而而图图形
10、形的的大大小小和和形形状状不不变,变,9(4 4)对称变换)对称变换如如果果经经过过变变换换后后所所得得到到的的图图形形与与变变换换前前的的图图形形关关于于X坐坐标标轴轴是是对对称称的的,则则称称此此变变换换为为关关于于X轴轴的的对对称称变变换换。经经过过这这一一变变换换后后的的坐坐标标点点(x,y)与与变变换换前前的的对对应应坐坐标标点点(x,y)的关系为:的关系为:x=x,y=-y 与与此此类类似似,若若变变换换前前后后的的图图形形关关于于Y轴轴对对称称,则则称称为为关关于于Y轴的对称变换。这一变换前后点的坐标间的关系:轴的对称变换。这一变换前后点的坐标间的关系:x=-x,y=y当当图图形
11、形对对X轴轴和和Y轴轴都都进进行行对对称称变变换换时时,即即得得相相对对于于原原点点的中心对称变换。这一变换前后点的坐标之间的关系为:的中心对称变换。这一变换前后点的坐标之间的关系为:x=-x,y=-y对称变换只改变图形方位,不改变其形状和大小。对称变换只改变图形方位,不改变其形状和大小。1011(5 5)错切变换)错切变换如如果果变变换换前前坐坐标标点点(x,y)与与变变换换后后对对应应的的新新坐坐标标点点(x,y)的关系为:的关系为:x=x+cy,y=y我们称这一变换为沿我们称这一变换为沿X轴的错切变换,式中轴的错切变换,式中c为错切系数为错切系数与此类似,若变换前后对应点的坐标关系为:与
12、此类似,若变换前后对应点的坐标关系为:x=x,y=y+bx 则称此变换为沿则称此变换为沿Y轴的错切变换,其中轴的错切变换,其中b为错切系数。为错切系数。错错切切变变换换不不仅仅改改变变图图形形的的形形状状,而而且且改改变变图图形形的的方方位位,但但图形中的平行关系不变,图形中的平行关系不变,12一一般般把把上上述述变变换换统统称称为为基基本本的的图图形形变变换换,绝绝大大部部分分复复杂杂的的图图形形变变换换都都可可以以通通过过这这些些基基本本交交换换的的适适当组合来实现。当组合来实现。13二、几何变换的矩阵表示形式二、几何变换的矩阵表示形式 1.1.变换矩阵变换矩阵任何一个复杂图形都是由任意多
13、个有序点集连线而成。在任何一个复杂图形都是由任意多个有序点集连线而成。在解析几何学中。在二维空间内,平面上的点可以用一行两解析几何学中。在二维空间内,平面上的点可以用一行两列矩阵列矩阵x y或两行一列矩阵来表示。由此,一个由或两行一列矩阵来表示。由此,一个由n个个点的坐标组成的复杂图形可以用点的坐标组成的复杂图形可以用n2阶矩阵表示:阶矩阵表示:这种图形的表示法称为二维图形的矩阵表示法。这种图形的表示法称为二维图形的矩阵表示法。14由此可知,图形的变换可用矩阵运算来实现。具体说就由此可知,图形的变换可用矩阵运算来实现。具体说就是由构成图形的点集的矩阵与是由构成图形的点集的矩阵与T=矩阵乘法运算
14、,矩阵乘法运算,即即我们称我们称T=为二维图形变换矩阵,其中点集中任为二维图形变换矩阵,其中点集中任意一点(意一点(x,y)变换后坐标为:变换后坐标为:15这是我们熟悉的关于直角坐标变换因子。这是我们熟悉的关于直角坐标变换因子。由上式可知,变换矩阵由上式可知,变换矩阵中各元素决定着图形中各元素决定着图形各种不同变换各种不同变换。162 2二维基本变换的矩阵表示二维基本变换的矩阵表示(1 1)比例变换)比例变换 若令变换矩阵若令变换矩阵则写成矩阵形式为:则写成矩阵形式为:若取若取a=3 d=1 对点(对点(2 2,3 3)做变换)做变换,则则可以看出,可以看出,a1,d=1,变换后图形沿变换后图
15、形沿X方向放方向放大,大,显然,当显然,当00a1时,则使图形沿时,则使图形沿Y方向放大方向放大17a1,d=1,变换后变换后图形沿图形沿X方向放大方向放大 当当a=1,d1时,则时,则使图形沿使图形沿Y方向放大方向放大 18若若取取a=1,d=0,图图形形沿沿Y方方向向压压缩缩成成线线段段,如如下下图图所所示示当当a=1,d=1变变换换后后图图形形没没有有变变化化,称称这这种种变变换换矩矩阵阵为为恒恒等矩阵。等矩阵。19若取若取a=d=1.5对下图中(对下图中(a)矩阵矩阵12341234做变换,做变换,则则各点在各点在X,Y两个方向产生相等的比例变换,即变换后两个方向产生相等的比例变换,即
16、变换后图形和变换前图形相似,相似中心为坐标原点图形和变换前图形相似,相似中心为坐标原点。若若ad时时,使使图图形形在在X和和Y两两个个方方向向产产生生不不相相等等比比例例变变换换。下下图图(b)是是a=2,d=1.5时时对对(a)中中矩矩阵阵12341234变变换换结果。结果。图图(c)是取是取a=2,d=0.5对矩阵对矩阵12341234变换结果,变换变换结果,变换后图形在后图形在X方向放大,在方向放大,在Y方向缩小。方向缩小。20(2 2)对称变换)对称变换令变换矩阵令变换矩阵T 中中a=-1,d=1,即即使图形对使图形对Y轴对称轴对称例如:例如:如下图所示如下图所示21当当a=1,d=1
17、时,图形对时,图形对X轴对称即轴对称即当当时,图形对时,图形对+45+45度线对称度线对称 当当 时,图形时,图形4545度线对称度线对称 图形对图形对+45+45度线对称度线对称图形对图形对-4545度线对称度线对称22(3 3)错切变换)错切变换当变换矩阵中的当变换矩阵中的a=d=1,b与与c中一个为零,另一个为正中一个为零,另一个为正数或负数时,即数或负数时,即,它对图形的作用是使图,它对图形的作用是使图形产生沿一个坐标方向错切。形产生沿一个坐标方向错切。由由此此可可见见,点点的的X坐坐标标不不变变。y=kx+y,即即在在原原来来坐坐标标上上加加上上kx,即即沿沿+Y方方向向移移动动kx
18、值值。点点(0 0,0 0)则则是是不不移移动动的的。K是是一一个个常常数数,所所以以tg=kx/x=k,即即平平行行X轴轴的的线段对线段对X轴倾斜轴倾斜角度。角度。=45度时,度时,k=1。23例如:例如:由下图可见,图形沿由下图可见,图形沿+Y方向错切,这是对在第一方向错切,这是对在第一象限内的点而言。象限内的点而言。当当时,它使第一象限内图形沿时,它使第一象限内图形沿+X方向错切方向错切 第一像限内图形第一像限内图形沿沿+Y方向错切方向错切第一像限内图形第一像限内图形沿沿+X方向错切方向错切24(4 4)旋转变换)旋转变换旋转变换是指坐标轴不动,点或图形绕坐标原点旋转旋转变换是指坐标轴不
19、动,点或图形绕坐标原点旋转角,以逆时针方向取正值。如下图所示,其变换矩阵角,以逆时针方向取正值。如下图所示,其变换矩阵则则25逆时钟旋转逆时钟旋转=90=90度时,变换矩阵度时,变换矩阵顺时针旋转顺时针旋转=-90=-90度时,度时,=180=180度时,度时,下图是矩阵旋转下图是矩阵旋转3030度的情况,其坐标变换如下:度的情况,其坐标变换如下:26三、二维图形齐次坐标矩阵变换三、二维图形齐次坐标矩阵变换1 1、齐次坐标与平移变换齐次坐标与平移变换前面四种变换都可以通过变换矩阵前面四种变换都可以通过变换矩阵来来实实现现,那那么么它它是是否否适适合合于于平平移移变变换换呢呢?若若实实现现平平移
20、移变变换,变换前后的坐标必须满足下面的关系:换,变换前后的坐标必须满足下面的关系:这这里里tx,ty是是平平移移量量,应应为为常常数数,但但是是应应用用上上述述的的变变换换矩矩阵对点进行变换:阵对点进行变换:27而这里的而这里的cy,bx均非常量,因此用原来的均非常量,因此用原来的2222的变换矩的变换矩阵是无法实现平移变换的,我们把阵是无法实现平移变换的,我们把2222矩阵扩充为矩阵扩充为3232矩阵,即令:矩阵,即令:但这样又带来新的问题,二维图形的点集矩阵是但这样又带来新的问题,二维图形的点集矩阵是n2阶的,阶的,而变换矩阵是而变换矩阵是3232阶的,根据矩阵乘法规则,它们是无阶的,根据
21、矩阵乘法规则,它们是无法相乘的。为此,我们把点向量也作扩充,将法相乘的。为此,我们把点向量也作扩充,将 扩展为扩展为,即把点集矩阵扩充为即把点集矩阵扩充为n3阶阶矩阵。这样,点集矩阵与变换矩阵即可以进行乘法运算:矩阵。这样,点集矩阵与变换矩阵即可以进行乘法运算:28对点进行平移变换:对点进行平移变换:对点进行平移变换:对点进行平移变换:这里这里L,m分别为分别为x,y方向的平移量。方向的平移量。为为使使二二维维变变换换矩矩阵阵具具有有更更多多的的功功能能,可可将将3232变变换换矩矩阵进一步扩充成阵进一步扩充成3333阶矩阵,即:阶矩阵,即:则平移变换矩阵为:则平移变换矩阵为:29对点进行平移
22、变换:对点进行平移变换:30例:设例:设l=20,m=20,对下图中的字母对下图中的字母T做平移变换得:做平移变换得:31如上讨论,在平移变换中,我们将如上讨论,在平移变换中,我们将 扩充为扩充为,实际上是由二维向量变为三维向量,实际上是由二维向量变为三维向量,但但 可可以以看看作作是是z=1平平面面上上的的点点,也也就就是是说说,经经此此扩扩充充后后,图图形形落落在在了了z=1的的平平面面上上,它它对对图图形形的的形形状没有影响。状没有影响。这这种种用用三三维维向向量量表表示示二二维维向向量量的的方方法法叫叫做做齐齐次次坐坐标标法法。进进一一步步推推广广,用用n+1维维向向量量表表示示n维维
23、向向量量的的方方法法称称之之为齐次坐标法。为齐次坐标法。322 2二维图形齐次坐标矩阵变换二维图形齐次坐标矩阵变换对对于于前前面面介介绍绍基基本本变变换换可可用用二二维维图图形形齐齐次次坐坐标标变变换换矩矩阵阵一般表达式一般表达式这这3333矩阵中各元素功能一共可分成四块,即矩阵中各元素功能一共可分成四块,即这个这个2222子矩阵可以实现图形的比例、对称、子矩阵可以实现图形的比例、对称、错切、旋转等基本变换;错切、旋转等基本变换;可以实现图形平移变换;可以实现图形平移变换;可以实现图形透视变换;可以实现图形透视变换;可以实现图形全比例变换。可以实现图形全比例变换。33例如,用矩阵例如,用矩阵对
24、图形进行变换:对图形进行变换:当当s1时,图形产生整体比例缩小。时,图形产生整体比例缩小。当当s=1时,图形大小不变。时,图形大小不变。由由此此表表明明,齐齐次次坐坐标标的的应应用用,扩扩大大了了变变换换矩矩阵阵功功能能,只只要要对对矩矩阵阵中中有有关关元元素素赋赋以以不不同同的的 值值,即即可可达达到到预预期期变变换换目的。目的。3435对称变换36四、组合变换四、组合变换 上上述述的的五五种种二二维维图图形形几几何何变变换换是是二二维维图图形形几几何何变变换换中中的的最最基基本本的的几几何何变变换换,在在进进行行这这些些基基本本的的几几何何变变换换时时,我我们们给给定定了了一一些些特特定定
25、的的约约束束条条件件,如如:旋旋转转变变换换是是指指绕绕坐坐标标原原点点的的旋旋转转,比比例例变变换换是是关关于于坐坐标标原原点点的的放放大大或或缩缩小小等等等等,因因而而是是几几何何变变换换中中的的一一些些简简单单情情形形。实实际际中中的的二二维维图图形形作作几几何何变变换换时时要要复复杂杂得得多多,往往往往是是多多种种基基本本的的几几何何变变换换复复合合而而成成的的,因因此此我我们们把把由由若若干干个个基基本本的的几几何何变变换换复复合合而而成成为为一一个个几几何何变变换换的的过过程程称称为为组组合合变变换换也也称称为为几何变换的级联。几何变换的级联。371 1绕任意点旋转变换绕任意点旋转
26、变换平平面面图图形形绕绕任任意意点点p(xp,yp)旋旋转转角角,需需要要通通过过以以下下几几个步骤来实现:个步骤来实现:(1 1)将旋转中心平移到原点,变换矩阵为:)将旋转中心平移到原点,变换矩阵为:YXp(xp,yp)38(2 2)将图形绕坐标系原点旋转角将图形绕坐标系原点旋转角,变换矩阵为:变换矩阵为:YX(3 3)将旋转中心平移回到原来位置,变换矩阵为:将旋转中心平移回到原来位置,变换矩阵为:YX39因此,绕任意点因此,绕任意点p的旋转变换矩阵为:的旋转变换矩阵为:显然,当显然,当xp=0,yp=0时,即为对原点的旋转变换矩阵。时,即为对原点的旋转变换矩阵。402 2对任意点做比例变换
27、对任意点做比例变换 设设任任意意一一点点p(xp,yp),作作比比例例变变换换需需通通过过以以下下步步骤骤来完成:来完成:(1 1)将)将P点移到坐标原点,变换矩阵为:点移到坐标原点,变换矩阵为:YX41(2 2)作关于原点的比例变换,变换矩阵为:)作关于原点的比例变换,变换矩阵为:(3 3)对原点作反平移变换,移到原来的位置:)对原点作反平移变换,移到原来的位置:YXYX42对任意点对任意点P作比例变换,其变换矩阵为作比例变换,其变换矩阵为 433 3对任意直线对称变换对任意直线对称变换如如下下图图所所示示,设设任任意意直直线线的的方方程程为为:Ax+By+C=0,直直线线在在X轴轴和和Y轴
28、轴上上的的截截矩矩分分别别 C/A和和 C/B,直直线线与与X轴轴的的夹角为,夹角为,=arctg(A/B)。YX-C/B-C/A44对任意直线的对称变换由以下几个步骤来完成:对任意直线的对称变换由以下几个步骤来完成:(1 1)平平移移直直线线,使使其其通通过过原原点点(可可以以沿沿X向向和和Y向向平平移移,这里沿这里沿X向将直线平移到原点),变换矩阵为:向将直线平移到原点),变换矩阵为:YX45(2 2)绕原点旋转,使直线与某坐标轴重合(这里以与)绕原点旋转,使直线与某坐标轴重合(这里以与X轴重合为例),变换矩阵如下:轴重合为例),变换矩阵如下:YX46(3 3)对坐标轴对称变换(这里是对)
29、对坐标轴对称变换(这里是对X轴),其变换矩阵为:轴),其变换矩阵为:YX47(4 4)绕绕原原点点旋旋转转,使使直直线线回回到到原原来来与与X轴轴成成角角的的位位置置,变换矩阵为:变换矩阵为:YX48(5 5)平移直线,使其回到原来的位置,变换矩阵为:)平移直线,使其回到原来的位置,变换矩阵为:X49通通过过以以上上五五个个步步骤骤,即即可可实实现现图图形形对对任任意意直直线线的的对对称称变变换,其组合变换矩阵如下:换,其组合变换矩阵如下:50综综合合上上述述,复复杂杂变变换换是是通通过过基基本本变变换换组组合合而而成成的的,由由于于矩矩阵阵乘乘法法不不适适用用于于交交换换律律,即即,因因此此
30、,组组合合变变换换顺顺序序不不能颠倒,顺序不同,则变换结果不同。能颠倒,顺序不同,则变换结果不同。51例例4 43 3 各各顶顶点点坐坐标标A(3,0),B(4,2),C(6,0)使使其其绕绕原原点点转转9090度度,再再向向X方方向向平平移移2 2,Y方方向向平平移移11。因因=90O 则变换矩阵:则变换矩阵:52如果先进行平移变换,再进行旋转变换,则矩阵为:如果先进行平移变换,再进行旋转变换,则矩阵为:由于变换顺序不同,其结果也不同。由于变换顺序不同,其结果也不同。53例例4 444 设设有有一一三三角角形形ABC,其其三三个个顶顶点点坐坐标标为为A(2,4),B(2,2),C(5,2),
31、求求对对于于直直线线22x+3y+3=0的对称变换后的对称变换后其中其中=arcty(-A/B)=arcty(2/3)3304154变换后的如下图所示。变换后的如下图所示。554.64.6二维图像裁剪二维图像裁剪一、概述一、概述1 1、定义、定义 为为了了描描述述图图形形对对象象,我我们们必必须须存存储储它它的的全全部部信信息息,但但有有时时为为了了达达到到分分区区描描述述或或重重点点描描述述某某一一部部分分的的目目的的,往往往往将将要要描描述述的的部部分分置置于于一一个个窗窗口口之之内内,而而将将窗窗口口之之外外部部“剪掉剪掉”,这个处理过程叫做裁剪。,这个处理过程叫做裁剪。裁裁剪剪实实质质
32、上上是是从从数数据据集集合合中中抽抽取取信信息息的的过过程程,这这个个过过程程是是通通过过一一定定计计算算方方法法实实现现的的。裁裁剪剪就就是是将将指指定定窗窗口口作作为为图图形形边边界界,从从一一幅幅大大的的画画面面中中抽抽取取所所需需的的具具体体信信息息,以显示某一局部画面或视图。以显示某一局部画面或视图。第四章第四章二维图形生成和变换技术二维图形生成和变换技术 4.14.1基本绘图元素基本绘图元素 4.24.2直线段的生成直线段的生成 4.34.3曲线的生成曲线的生成 4.44.4区域填充区域填充 4.54.5二维图形变换二维图形变换 4.64.6二维图像剪裁二维图像剪裁 56在实际应用
33、中,经常会遇到一些大而复杂的图形,在实际应用中,经常会遇到一些大而复杂的图形,如集成电路布线图、建筑结构图、地形地貌图等。由于如集成电路布线图、建筑结构图、地形地貌图等。由于显示屏幕的尺寸及其分辨率限制,这样复杂的图形往往显示屏幕的尺寸及其分辨率限制,这样复杂的图形往往不能全部显示出来,即使将它们采用比例变换后全部显不能全部显示出来,即使将它们采用比例变换后全部显示在同一屏幕上,也只能表现一个大致轮廓,并且图形示在同一屏幕上,也只能表现一个大致轮廓,并且图形拥挤不清。因此对复杂图形,一般只能显示它的局部内拥挤不清。因此对复杂图形,一般只能显示它的局部内容,我们在研究某复杂图形时,往往对某特定画
34、面感兴容,我们在研究某复杂图形时,往往对某特定画面感兴趣,在这种情况下,我们将这一特定区域放大后显示出趣,在这种情况下,我们将这一特定区域放大后显示出来,而把周围画面部分全部擦除,这样可清晰地观察其来,而把周围画面部分全部擦除,这样可清晰地观察其细节部分细节部分 57我我们们假假定定裁裁剪剪是是针针对对用用户户坐坐标标中中窗窗口口边边界界进进行行的的,裁裁剪剪完完成成后后,再再把把窗窗口口内内图图形形映映射射到到视视区区。所所以以裁裁剪剪的的目目的的是是显显示示可可见见点点和和可可见见部部分分,删删除除视视区区外外的的部部分分。例例如如,下下图图(a)定定义义了了一一个个矩矩形形窗窗口口ABC
35、D,窗窗口口内内会会有有EFG的的一一部部分分,而而直直线线段段EG、FG都都有有一一部部分分在在窗窗口口外外。然然后后将将落落在在窗窗口口内内这这部部分分图图形形传传送送到到视视图图区区内内显显示示,如图(如图(b)所示。此时,窗口外那部分被裁剪掉。所示。此时,窗口外那部分被裁剪掉。58二、二、窗口区和视图区窗口区和视图区用户域:在进行图形设计时,图形输出程序中的图形都用户域:在进行图形设计时,图形输出程序中的图形都 是在用户坐标系中定义的。此坐标系拥有的区是在用户坐标系中定义的。此坐标系拥有的区域在理论上是无限的,在使用时我们可以把它域在理论上是无限的,在使用时我们可以把它当作是一个有限的
36、矩形区,即用户域。当作是一个有限的矩形区,即用户域。窗口区:用户可以在用户域中指定任意区域输出到屏幕窗口区:用户可以在用户域中指定任意区域输出到屏幕 上上,这这 个个 指指 定定 区区 域域 称称 为为 窗窗 口口 区区,简简 称称 窗窗 口口(Window)如如图图所所示示的的矩矩形形 ABCD 就就是是我我们们定定义义的的一一个个窗窗口口。我我们们可可用用该该矩矩形形的的左左下下角角和和右右上上角角两两点点坐坐标标来来定定义义其其大大小小和和位位置置。因因此此,定定义义窗窗口口的的目目的的就就是是选选取取用用户户所所定定义义的的图形中需要观察的那一部分图形。图形中需要观察的那一部分图形。窗
37、口区,用窗口区,用左下角和右左下角和右上角来定义上角来定义59视视图图区区:简简称称视视图图(Viewport),是是在在屏屏幕幕上上定定义义的的一一个个小小于于或或等等于于屏屏幕幕区区域域一一个个矩矩形形块块。同同样样也也是是用用该该矩矩形形左左下下角角和和右右上上角角两两点点坐坐标标来来定定义义大大小小和和位位置置。视视图图区区可可用用来来显显示示某某一一窗窗口口内内图图形形。所所以以人人们们利利用用窗窗口口来来选选择择需需要要观观察察那那一一部部分分图图形形,而而利利用用视视图图区区来来指指定定这这一一部部分分图图形在屏幕上显示位置。下图表示窗口与视图关系。形在屏幕上显示位置。下图表示窗
38、口与视图关系。屏幕屏幕视图区视图区窗口区窗口区60 在在交交互互式式图图形形设设计计中中,通通常常把把一一个个屏屏幕幕分分为为几几个个视视图图区区,每每个个视视图图区区都都有有各各自自用用途途,如如图图所所示示,视视图图区区1 1为为用用户户图图形形区区,视视图图区区2 2为为命命令令区区,视视图图区区3 3是是信信息息区区。同同时时用用户户图图形形区区还还可可分分为为各各个个子子区区,以以满满足足用用户户显显示示多多层层窗窗口的需要。口的需要。由由于于窗窗口口和和视视图图是是在在不不同同坐坐标标系系中中定定义义的的,因因此此,在在把把窗窗口口中中图图形形信信息息送送到到视视图图区区之之前前,
39、必必须须进进行行坐坐标标变变换换,即即把把用用户户坐坐标标系系的的坐坐标标值值转转化化为为设设备备(屏屏幕幕)坐坐标标系的坐标值,这个变换称窗口系的坐标值,这个变换称窗口视图变换。视图变换。61如如图图所所示示,设设在在用用户户坐坐标标系系下下定定义义的的窗窗口口为为:左左下下角角点点坐坐标标(Wxl,Wyb),右右上上角角点点坐坐标标(Wxr,Wyt);在在设设备备坐坐标标系系中中定定义义的的视视区区为为:左左下下角角点点坐坐标标(Vxl,Vyb),右上角点坐标(右上角点坐标(Vxr,Vyt)。)。62由图可知:由图可知:由(由(4-244-24)式得窗口中一点)式得窗口中一点P(xW,yW
40、)变换到视区中对应变换到视区中对应的点的点V(xV,yV)二者之间的关系为:二者之间的关系为:设设:63则(则(4.254.25)式可写成:)式可写成:写成矩阵形式:写成矩阵形式:64由此可见窗口由此可见窗口视图变换是比例变换和平移变换的组视图变换是比例变换和平移变换的组合变换。先进行平移变换将窗口左下角坐标移到用户坐合变换。先进行平移变换将窗口左下角坐标移到用户坐标原点,接着进行比例变换,使窗口中各点比例变换到标原点,接着进行比例变换,使窗口中各点比例变换到设备坐标系(屏幕)中,最后再作平移交换,使原点移设备坐标系(屏幕)中,最后再作平移交换,使原点移到视图左下角。到视图左下角。通过窗口通过
41、窗口视图变换,我们就实现了将用户坐标系中视图变换,我们就实现了将用户坐标系中窗口区中任意一点转换成设备坐标系中屏幕视图区中一窗口区中任意一点转换成设备坐标系中屏幕视图区中一点变换,从而就可以把实际物体图形显示在显示器上,点变换,从而就可以把实际物体图形显示在显示器上,但要注意:为了使经过窗口但要注意:为了使经过窗口视图变换后的图形在视视图变换后的图形在视图区中输出时不产生失真现象,在定义窗口和视图时,图区中输出时不产生失真现象,在定义窗口和视图时,必须保证使窗口和视图区高度和宽度之间比例相同。必须保证使窗口和视图区高度和宽度之间比例相同。65三、三、直线段裁剪直线段裁剪11、点的剪裁、点的剪裁
42、 裁裁剪剪的的过过程程就就是是对对窗窗口口内内每每个个图图形形元元素素都都得得划划分分一一下下可可见见部部分分和和不不可可见见部部分分。裁裁剪剪可可以以在在各各种种不不同同类类型型的的图图形形元元素素上上实实现现,如如点点、向向量量、直直线线段段、字字符符以以及及多多边边形等。形等。裁剪算法中最基本的情况是点的裁剪。判断某一点裁剪算法中最基本的情况是点的裁剪。判断某一点P(x,y)是否可见,可以利用下列一对不等式来确定该是否可见,可以利用下列一对不等式来确定该点是否在窗口范围内。点是否在窗口范围内。如图所示如图所示:Wxl xW Wxr Wyb yW Wyt 满满足足上上述述两两个个不不等等式
43、式的的点点即即在在窗窗口口内内,属属于于可可见见的的点点,应该保留;反之,则该点不可见,应予舍弃。应该保留;反之,则该点不可见,应予舍弃。WytWybWxlWxr66 2 2、直线段与窗口关系、直线段与窗口关系 点点的的裁裁剪剪虽虽然然很很简简单单,但但要要把把所所有有的的图图形形元元素素转转换换成成点点,然然后后用用上上述述不不等等式式判判别别是是否否可可见见,那那是是很很不不现现实实的的。这这样样的的裁裁剪剪过过程程所所在在时时间间就就会会过过长长,不不经经济济。因因此此,要要求求一一种种适适合合较较大大的的图图形形元元素素,比比较较有有效效的的裁裁剪剪方方法法。直直线线段段是是组组成成一
44、一切切其其它它图图形形的的基基础础。任任何何图图形形(包包括括曲曲线线、字符和多边形),一般都能用不同直线段组合形成字符和多边形),一般都能用不同直线段组合形成对于任意一条直线段,它相对于一个已定义的窗口对于任意一条直线段,它相对于一个已定义的窗口位置关系不外乎有四种可能,如图所示。位置关系不外乎有四种可能,如图所示。直线段完全被直线段完全被排斥在窗口的排斥在窗口的边框之外边框之外直线段完全直线段完全被包含在窗被包含在窗口之内口之内直线段和窗口的一条边框直线段和窗口的一条边框相交,使得该直线段被相相交,使得该直线段被相交点分成两截,其中的一交点分成两截,其中的一个截段落在窗口之内,而个截段落在
45、窗口之内,而另一个截段留在窗口之外另一个截段留在窗口之外直线段贯穿整个窗口,这样,直线段贯穿整个窗口,这样,直线段就与窗口的两条边框直线段就与窗口的两条边框相交,使得原直线段被分成相交,使得原直线段被分成三个截段,其中只能有一个三个截段,其中只能有一个截段落在窗口内,而另外的截段落在窗口内,而另外的两段都处于窗口之外,两段都处于窗口之外,67归纳以上四种情况,可以得出这样一个结论:归纳以上四种情况,可以得出这样一个结论:对于任意一条直线段,它要么被完全排斥在窗口之外,对于任意一条直线段,它要么被完全排斥在窗口之外,如上述的情况(如上述的情况(1 1);要么在窗口内留下一个可见段,并);要么在窗
46、口内留下一个可见段,并且只能有一个可见段且只能有一个可见段,如上所述的情况(如上所述的情况(2 2)、()、(3 3)和)和(4 4)。因为一条直线段可以由它的两个端点来唯一地确)。因为一条直线段可以由它的两个端点来唯一地确定,所以,要确定一条直线段上位于窗口以内的可见段,定,所以,要确定一条直线段上位于窗口以内的可见段,仅需求得它的两个可见端点就行了。仅需求得它的两个可见端点就行了。下面我们介绍几种直线剪裁法下面我们介绍几种直线剪裁法 683 3编码裁剪法编码裁剪法(1 1)编码规则)编码规则 这这一一方方法法是是由由库库恩恩和和萨萨瑟瑟兰兰德德(Cohen和和Sutherland)提提出出
47、的的,该该方方法法是是把把包包含含窗窗口口的的平平面面区区域域沿沿窗窗口口的的四四条条边边线分成九个区域线分成九个区域.每每个个区区域域用用一一个个四四位位代代码码来来表表示示,代代码码中中每每一一位位分分别别是是0 0或或1 1,是按照窗口边线来确定的,下面给出编码规则,其中,是按照窗口边线来确定的,下面给出编码规则,其中 最右边的位是第一位,依次第最右边的位是第一位,依次第二、三、四位。二、三、四位。第一位置第一位置 l:该端点位于窗口左侧该端点位于窗口左侧第二位置第二位置 l:该端点位于窗口右侧该端点位于窗口右侧 第三位置第三位置1:1:该端点位于窗口下面该端点位于窗口下面第四位置第四位
48、置 l:该端点位于窗口上面该端点位于窗口上面否则,相应位置置否则,相应位置置0 0。69 由由编编码码规规则则可可知知,若若线线段段两两端端点点编编码码均均为为零零,则则两两点点均均在在窗窗口口内内,线线段段完完全全可可见见。因因此此,要要判判断断两两端端点点线线段段与与窗窗口口对对应应关关系系,可可用用两两个个端端点点编编码码逐逐位位取取逻逻辑辑“与与”,若若线线段段两两端端点点逻逻辑辑“与与”不不为为0 0,必必在在窗窗口口外外,根根据据图图形形中中直直线线两两端端点点p1,p2按按其其所所在在区区域域赋赋予予相相应应代代码码,以以C1和和C2表表示示,然然后后再再根根据据端端点点对对直直
49、线线进进行行可可见见和和不不可可见判断见判断(2 2)算法步骤)算法步骤下面给出直线段裁剪编码算法步骤:下面给出直线段裁剪编码算法步骤:当当两两端端点点P1(x1,y1)和和P2(x2,y2),在在区区域域00000000中中,即即满满足点的裁剪不等式。足点的裁剪不等式。Wxl(x1,x2)Wxr Wyb(y1,y2)Wyt则两端点代码则两端点代码C1C20 表示均在窗口内,应全部保留表示均在窗口内,应全部保留70当当两两个个端端点点在在窗窗口口边边线线外外的的同同侧侧位位置置,则则它它们们的的四四位位代代码码中中,有有一一相相同同位位,同同时时为为“1”“1”,显显然然两两个个端端点点代代码
50、码的的逻逻辑辑乘乘不不等等于于零零。即即C1 C2 0。此此检检查查判判断断直直线线在在窗窗口外,应全部舍弃。口外,应全部舍弃。如如果果直直线线两两端端点点不不符符合合上上述述两两种种情情况况,不不能能简简单单地地全全部部保保留留或或全全部部舍舍弃弃直直线线时时,则则需需计计算算出出直直线线与与窗窗口口边边线线的的交交点点,将将直直线线分分段段后后继继续续进进行行检检查查判判断断。这这样样可可以以逐逐段地舍弃位于窗口外的线段,保留剩在窗口内的线段。段地舍弃位于窗口外的线段,保留剩在窗口内的线段。71 如如图图所所示示,用用编编码码裁裁剪剪算算法法对对 P1P2线线段段裁裁剪剪,可可以以在在C点