第3章二维图形裁剪.ppt
《第3章二维图形裁剪.ppt》由会员分享,可在线阅读,更多相关《第3章二维图形裁剪.ppt(56页珍藏版)》请在第壹文秘上搜索。
1、本章主要内容本章主要内容3.1裁剪概述裁剪概述3.2线段裁剪线段裁剪直接求交算法;直接求交算法;Cohen-Sutherland算法;(重点,算法实现)算法;(重点,算法实现)中点算法3.3多边形裁剪多边形裁剪 Sutlerland_Hodgman算法算法(难点,算法实现)Weiler-Athenton算法 3.4字符裁剪字符裁剪裁 剪二维图形裁剪二维图形裁剪预备知识:求交(矩形窗口)(矩形窗口)裁剪裁剪三维裁剪长方体裁剪体棱锥体体裁剪体编码裁剪算法编码裁剪算法被裁剪对象:直线段、多边形直线段、多边形、三维实体1.裁剪:裁剪:是裁去窗口之外物体或物体部分的一种操作。是裁去窗口之外物体或物体部分
2、的一种操作。3.1裁剪概述裁剪概述“取景器”=窗口裁剪的目的裁剪的目的判断图形元素是否落在裁剪窗口之内并找出其位于内判断图形元素是否落在裁剪窗口之内并找出其位于内部的部分部的部分裁剪处理的基础裁剪处理的基础图元关于窗口内外关系的判别图元关于窗口内外关系的判别图元与窗口的求交图元与窗口的求交假定条件假定条件矩形裁剪窗口:矩形裁剪窗口:xmin,xmaxymin,ymax待裁剪点或线段:待裁剪点或线段:2.裁剪概述裁剪概述 点裁剪点裁剪 点点(x,y)在窗口内的充分必要条件是:在窗口内的充分必要条件是:问题:对于任何多边形窗口,如何判别?问题:对于任何多边形窗口,如何判别?xxxminmaxyyy
3、minmaxWytWybWxlWxrP1P2P3线段相对于该窗口的情况有情况有:线段全部全部位于窗口的内部窗口的内部(A);线段全部全部位于窗口外部窗口外部(B、C);线段的中间部分中间部分在窗口内窗口内,而二端点在窗口外部(D);线段的一端在窗口内一端在窗口内,而另一端在窗口外另一端在窗口外(E)。x=xLx=xRy=yBy=yTABCDE3.2 线段裁剪线段裁剪待裁剪线段和窗口的关系待裁剪线段和窗口的关系 线段完全可见线段完全可见显然不可见显然不可见 线段至少有一端点在窗口之外,但非显然不可见线段至少有一端点在窗口之外,但非显然不可见 保留丢弃裁剪为提高效率,算法设计时应考虑:(一)快速判
4、断线段完全在窗口内或处的情形;(二)设法减少裁剪情形中求交次数和每次求交时所需的计算量。3.2.1直接求交算法基本思想基本思想是:判断直线与窗口的位置关系,确定该直线是完全可见、部分可见或完全不可见,然后输出处于窗口内线段的端点,并显示此线段。根据直线段和窗口的关系可知:(1)整条线在窗口之内。此时,不需剪裁,显示整条线段。(2)整条线在窗口之外,此时,不需剪裁,不显示整条线段。(3)部分线在窗口之内,部分线在窗口之外。此时,需要求出线段与窗口边界的交点,并将窗口外的线段部分剪裁掉,显示窗口内的部分。例1 设有直线段P0P1,有一个矩形裁剪窗口,写出对该线段裁剪的算法。1)判断线段端点的位置,
5、由图4-2(a)可知:P0不在窗口内,P1在窗口内。2)保持线段起始点在裁剪窗口内:交换两点,使P0在内,如图4-2(b)所示。3)求出直线与窗口的交点I,如图4-2(c)所示。4)取P0 I线段显示,擦除I P1线段,并将P1替换I,即得P0P1线段,裁剪结束。如图4-2(d)所示。P1P0P0P1P0P1IP0P1求线段与窗口交点求线段与窗口交点设线段两端点坐标为:和则过这两点的直线方程为:其中k为斜率。上述直线方程与窗口各边界的交点为:左:右:下:上:11111212)()(yxxkyxxxxyyykyxxkyxxLL11)(kyxxkyxxRR11)(0)(/1(11kyyyykxxB
6、B0)(/1(11kyyyykxxTT)(111yxP,)(222yxP,基本思想基本思想:对于每条待裁剪的线段P1P2分三种情况处理:若P1P2完全在窗口内,则显示该线段P1P2,简称“取取”之;若P1P2完全在窗口外,则丢弃该线段,简称“舍舍”之;若线段既不满足“取”的条件,也不满足“舍”的条件,则求线段与窗口边界的交点交点,在交点处把线段分为两段,其中一段完全在窗口外,可舍弃之,然后对另一段重复上述处理。核心思想:分区编码分区编码和线段分割线段分割。3.2.2Cohen-Sutherland 算法算法(编码算法)分区编码方法:图形区域划分成九个区域。四位编码 表示端点所处的位置:(-)上
7、上 下下 右右 左左第一一位为“1”时,表示点在y=yy=yT T的上方的上方;第二二位为“1”时,表示点在y=yy=yB B的下方的下方;第三三位为“1”时,表示点在x=xx=xR R的右方的右方;第四四位为“1”时,表示点在x=xx=xL L的左方的左方。000000010010100001001001101001010110 x=xLx=xRy=yBy=yT11111 1 1 1 1 1 1 1#define LEFT 1#define RIGHT 2#define BOTTOM 4#define TOP 8编码原则编码原则每个区域赋予一个四位编码,每个区域赋予一个四位编码,CtCbCr
8、Cl,上下右左;,上下右左;elseyyCt0max1当elsexxCr0max1当elsexxCl0min1当elseyyCb0min1当编码方法编码方法x=xLx=xRy=yBy=yTABCDE第一步第一步 判别线段两端点是否都落在窗口内,如果是,判别线段两端点是否都落在窗口内,如果是,则线段则线段完全可见完全可见;否则进入第二步;否则进入第二步;第二步第二步 判别线段是否为判别线段是否为显然不可见显然不可见,如果是,则裁,如果是,则裁 剪结束;否则进行第三步剪结束;否则进行第三步 ;第三步第三步 求线段与求线段与窗口边延长线窗口边延长线的交点,这个交点将的交点,这个交点将 线段分为两段,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二维 图形 裁剪
