好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第6章-开窗口及二维裁剪课件.ppt

39页
  • 卖家[上传人]:博****1
  • 文档编号:609032773
  • 上传时间:2025-05-26
  • 文档格式:PPT
  • 文档大小:1.71MB
  • / 39 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,“,”,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,“,”,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,6,章 开窗口及二维裁剪,应用程序中所定义的画面均以世界坐标系表示,这些画面要映射到设备坐标系才可以显示出来在显示器上可以只选择一个显示区域观察一幅画面,也可以同时选择若干显示区域观察若干幅画面把用一观察窗口有选择地显示物体地某一部分称为开窗口技术,如果要求删除显示区域之外的画面部分则称为裁剪第,6,章 开窗口及二维裁剪,6.1,开窗口及裁剪的基本概念,6.2,直线裁剪算法,6.3,多边形裁剪,6.4,文本裁剪,6.1,开窗口及裁剪的基本概念,6.1.1,坐标系,组成图形的最基本元素是点,而点的位置通常是在一个坐标系中定义的图形系统中所使用的坐标系是人们广为熟悉的直角坐标系,也称笛卡儿坐标系1.,建模坐标系(,MC,),依物体而建,物体在其中的表示相对简单,易于描述。

      是直角右手坐标系,长度单位由用户自定,取值范围是整个实数域2.,世界坐标系(,WC,),单个物体的形状一旦被指定以后,需要将其放入到场景的适当位置,场景是采用世界坐标系描述的是直角右手坐标系,长度单位由用户自定,取值范围是整个实数域6.1.1,坐标系,在最后变换为特定设备坐标之前,图形系统需要将世界坐标位置变换为规范化设备坐标位置这样可使系统独立于可能使用的特定工作站的各种设备图中,初始建模坐标位置(,x,mc,,,y,mc,)变换为设备坐标位置(,x,dc,,,y,dc,),其系列为,6.1.2,窗口与视区,窗口,:用户在世界坐标系中指定的局部区域,通常是矩形区域开窗口,:指定或选取一个区域视区,:在屏幕上指定一个较小的矩形区域,用于显示窗口内的图形,这个在屏幕上的矩形区域称为视区,它是用规格化设备坐标系进行描述的6.1.3,窗口在图形显示中的应用,1.,利用开窗口技术,可灵活地在屏幕上显示一景物的不同部分、改变窗口及视区的大小和位置,可使显示的图形发生变化2.,对于一个显示物体可定义多个窗口及多个视区,这样可多方位、多侧面观察一个物体3.,在多工作站的情况下,可在各工作站建立不同的窗口及视区,这样就可以在不同的输出设备上显示物体的不同部分。

      6.2,直线裁剪算法,裁剪的含义,为了能,看到,计算机内部存储数据量比较大的,图形的各个局部细节,在放大显示一幅图形的一部分区域时,必须,确定图形中,哪些,部分落在显示区之内,,,哪些,落在显示区之外,,以便显示,落在显示区内的那部分图形这个选择过程称为裁剪裁剪的实质,决定图形中哪些点、线段、文字、以及多边形在窗口之内6.2.1,直线裁剪的基本原理,点裁剪,点,(x,y),在窗口内的充分必要条件是:,6.2.2,Cohen-Sutherland,直线裁剪算法,Cohen-Sutherland,算法思想:对于每条线段,P,1,P,2,,分为,3,种情况处理:,(,1,)若,P,1,P,2,完全在窗口内,则显示该线段,P,1,P,2,,简称,取,之,(,2,)若,P,1,P,2,明显在窗口外,则丢弃该线段,P,1,P,2,,简称,弃,之,(,3,)若线段既不满足,“,取,”,的条件,也满足,“,弃,”,的条件,则把线段分成两段其中一段完全在窗口外,可弃之然后对另一段重复上述处理6.2.2,Cohen-Sutherland,直线裁剪算法,一、区域码建立,编码方法:,由窗口四条边所在直线把二维平面分成,9,个区域,每个区域赋予一个四位编码,C,t,C,b,C,r,C,l,(上下右左);代码每位用,0,或,1,来表示,并且规定:,在窗口上边线之上,第,4,位为,1,,否则第,4,位为,0,;,在窗口下边线之下,第,3,位为,1,,否则第,3,位为,0,;,在窗口右边线之右,第,2,位为,1,,否则第,2,位为,0,;,在窗口左边线之左,第,2,位为,1,,否则第,1,位为,0,;,6.2.2,Cohen-Sutherland,直线裁剪算法,一、区域码建立,6.2.2,Cohen-Sutherland,直线裁剪算法,二、区域码裁剪算法,1001,1000,1010,0001,0000,0010,0101,0100,0110,P1,P2,端点间关系,线段与窗口关系,若,code1=0,且,code2,0,,,P,1,P,2,明显在窗口内,则“取”,6.2.2,Cohen-Sutherland,直线裁剪算法,二、区域码裁剪算法,1001,1000,1010,0001,0000,0010,0101,0100,0110,P1,P2,code1:,0101,&,code2:,0100,0,1,00,端点间关系,线段与窗口关系,若,code1&code20,,,P,1,P,2,明显在窗口外,则“弃”,6.2.2,Cohen-Sutherland,直线裁剪算法,二、区域码裁剪算法,1001,1000,1010,0001,0000,0010,0101,0100,0110,P2,P1,P3,code1=000,1,,,P1,在窗口左边,计算线段与窗口左边界的交点,P3,;,code2=0,1,00,,,P2,在窗口下方,用窗口下边界与线段求交点,P4,;,code1=0001,code2=0100,不满足(,1,),code1&code2=0,,不满足(,2,),P4,P3,端点间关系,线段与窗口关系,在交点处把线段分为两段。

      其中一段完全在窗口外,可弃之然后对另一段重复上述处理6.2.3,中点分割算法,基本思想:,从,P,0,点出发找出离,P,0,最近的可见点,和从,P,1,点出发找出离,P,1,最近的可见点这两个可见点的连线就是原线段的可见部分与,Cohen-Sutherland,算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况,对前两种情况,进行一样的处理;对于第三种情况,用中点分割的方法求出线段与窗口的交点A,、,B,分别为距,P,0,、,P,1,最近的可见点,,Pm,为,P,0,P,1,中点6.2.3,中点分割算法,从,P0,出发找距离,P0,最近可见点采用中点分割方法,先求出,P0P1,的中点,Pm,若,P0Pm,不是显然不可见的,并且,P0P1,在窗口中有可见部分,则距,P0,最近的可见点一定落在,P0Pm,上,所以用,P0Pm,代替,P0P1,;,否则取,PmP1,代替,P0P1,再对新的,P0P1,求中点,Pm,重复上述过程,直到,PmP1,长度小于给定的控制常数为止,此时,Pm,收敛于交点从,P1,出发找距离,P1,最近可见点采用上面类似方法6.3,多边形裁剪,错觉:,直线段裁剪的组合?,新的问题:,边界不再封闭,需要用窗口边界的恰当部分来封闭它,如何确定其边界?,6.3.1,Sutherland-Hodgman,算法,基本思想,:,每次用窗口的一条边裁剪多边形,流水线过程,(,左上右下,),:,前边的结果是后边的输入,6.3.1,Sutherland-Hodgman,算法,(,1,)(,2,)(,3,)(,4,),结果:上述算法仅用一条裁剪边对多边形进行裁剪,得到一个顶点序列,作为下一条裁剪边处理过程的输入。

      输出,P,3,输出,I,1,和,P,2,输出,I,2,无输出,6.3.1,Sutherland-Hodgman,算法,算法需要附加空间以存放各保留点为了减小存储空间,可把整个裁剪程序划分为若干部分,每一部分对一个窗口边界进行裁剪,裁剪得到的窗口内的点略去不再传送只有在对所有边均作处理后才把保留点存放起来在所裁剪的多边形是一个凹多边形时,最后裁剪生成的区域可能存在两个或多个不相连接的多边形6.3.2,Weiler-Atherton,算法,裁剪窗口为任意多边形(凸、凹、带内环)的情况:,主多边形:被裁剪多边形,记为,A,裁剪多边形:裁剪窗口,记为,B,6.3.2,Weiler-Atherton,算法,如果主多边形与裁剪多边形有交点,则,交点成对出现,,它们被分为如下两类:,进点,:主多边形边界由此进入裁剪多边形内,如,,I1,I3,I5,I7,I9,I11,出点,:主多边形边界由,此离开裁剪多边形区域,.,如,,I0,I2,I4,I6,I8,I10,6.3.2,Weiler-Atherton,算法,6.3.2,Weiler-Atherton,算法,6.3.2,Weiler-Atherton,算法,1,、建立主多边形和裁剪多边的顶点表,2,、求主多边形和裁剪多边形的交点,并将这些交点按顺序插入两多边形的顶点表中。

      在两多边表形顶点表中的相同交点间建立双向指针3,、裁剪,:,如果存在没有被跟踪过的交点,执行以下步骤:,6.3.2,Weiler-Atherton,算法,6.4,文本裁剪,图形包中的文本生成方法不同,可能有多种不同的裁剪方法1,)对于标准字符,一般把字符作为一个整体裁剪,(,2,)用线段组成的字符,可用直线裁剪方法裁剪文本的裁剪可分为:,以串为单位的裁剪,以字符为单位的裁剪,矢量裁剪,6.4.1,以串为单位的裁剪,字符串裁剪:,把整个字符串作为整体来处理:或者全部显示,或者全部不显示测试时可以选用整个字符界框6.4.2,以字符为单位的裁剪,字符裁剪:,每个字符被一个称为字符框的矩形所包围,然后以这个框和窗口进行比较,如果这个框在窗口内,则显示此字符6.4.3,矢量裁剪,矢量裁剪:,把每个字符都看作是一些短直线(笔划)的组合,故每一笔划都必须个别地进行裁剪小结,6.1,开窗口及裁剪的基本概念,6.2,直线裁剪算法,6.3,多边形裁剪,6.4,文本裁剪,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.