计算机图形学第6章二维图形的裁剪.ppt
《计算机图形学第6章二维图形的裁剪.ppt》由会员分享,可在线阅读,更多相关《计算机图形学第6章二维图形的裁剪.ppt(20页珍藏版)》请在三一办公上搜索。
1、7.3 多边形的裁剪,前面讨论了线段的裁剪,多边形的裁剪是以线段裁剪为基础的,但又不同于线段的裁剪。通常有一种错觉,认为只要把多边形的每条边用直线裁剪方法裁剪后,就完成了对多边形的裁剪。P110其实不然,在计算机图形学中,多边形定义了一个封闭的二维区域,它把平面分成多边形内区和外区,一个多边形的裁剪结果仍应该是封闭的多边形,而不是一些孤立的线段。如图中所示,裁剪后的多边形仍应保留原多边形各边的连接顺序并加入一些新顶点(交点、窗口顶点)及删除界外顶点;一个凹多边形裁剪后,可能分裂为几个多边形。,7.3 多边形的裁剪,多边形裁剪的常用算法 1Sutherland-Hodgeman多边形裁剪2Wei
2、lerAtherton任意多边形裁剪,7.3.1 Sutherland-Hodgeman多边形裁剪,Sutherland-Hodgman算法也叫逐边裁剪法,该算法是萨瑟兰德(IESutherland)和霍德曼(Hodgman)在1974年提出的。这种算法采用了分割处理、逐边裁剪的方法。一、Sutherland-Hodgeman多边形裁剪算法思想:每次用窗口的一条边界(包括延长线)对要裁剪的多边形进行裁剪,裁剪时,顺序地测试多边形各顶点,保留边界内侧的顶点,删除外侧的顶点,同时,适时地插入新的顶点:即交点和窗口顶点,从而得到一个新的多边形顶点序列。然后以此新的顶点序列作为输入,相对第二条窗边界线
3、进行裁剪,又得到一个更新的多边形顶点序列。依次下去,相对于第三条、第四条边界线进行裁剪,最后输出的多边形顶点序列即为所求的裁剪好了的多边形。如下图所示。,7.3.1 Sutherland-Hodgeman多边形裁剪,新的多边形顶点序列产生规则:在用窗口一条边界及其延长线裁剪一个多边形时,该边界线把平面分成两个部分:一部分称为边界内侧;另一部分称为边界外侧。如下图所示,依序考虑多边形的各条边。假设当前处理的多边形的边为SP(箭头表示顺序关系,S为前一点,P为当前点),边SP与裁剪线的位置关系只有下面四种情况:1、S在外侧,P在内侧。则交点Q、当前点P保存到新多边形中。2、S、P均在内侧,则当前点
4、P保存到新多边形中。3、S在内侧,P在外侧。则交点Q保存到新多边形中。4、S、P均在外侧。则没有点被保存到新多边形中。,7.3.1 Sutherland-Hodgeman多边形裁剪,二、Sutherland-Hodgeman多边形裁剪算法实现:,三、Sutherland-Hodgeman多边形裁剪算法演示:四、点在边界内侧的判断方法:为了判断pi点是否在边界内侧可用坐标比较法和更通用的向量叉积符号判别法。1、坐标比较法将点的某个方向分量与边界进行比较。例如,判断某点是否在下边界内侧,用条件判别式:if(pi1=ymin)即可。对其它边界也一样。但不能写成通用公式。,7.3.1 Sutherla
5、nd-Hodgeman多边形裁剪,2、向量叉积法为简单计,测试点表示为P点。假设窗口边界方向为顺时针,如图中所示,对于其中任一边界向量,从向量起点A向终点B看过去:如果被测试点P在该边界线右边(即内侧),ABAP的方向与X-Y平面垂直并指向屏幕里面,即右手坐标系中Z轴的负方向。反过来,如果P在该边界线的左边(即外侧),这时ABAP的方向与X-Y平面垂直并指向屏幕外面,即右手坐标系中Z轴的正方向。设:点P(x,y)、点A(xA,yA)、点B(xB,yB),向量AB=(xB-xA),(yB-yA),向量AP=(x-xA),(y-yA),那么ABAP的方向可由下式的符号来确定:,V=(xB-xA)(
6、y-yA)-(x-xA)(yB-yA)(3-14),因此,当V0时,P在边界线内侧;而V0时,P在边界线外侧。,7.3.1 Sutherland-Hodgeman多边形裁剪,Sutherland-Hodgeman多边形裁剪中,常用向量叉积法来测试当前点P是否在边界内侧。已知窗口边界A(30,100)、B(40,180),某点P(50,300),请问点P在边界内侧吗?,计算 V=(xBxA)(yyA)(xxA))(yByA)=(4030)(300100)(5030))(180100)=400 因为V 0时,所以P在边界外侧。,练习,作业Sutherland-Hodgeman多边形裁剪中,常用向量
7、叉积法来测试当前点P是否在边界内侧。已知窗口边界A(50,80)、B(75,130),某点P(60,150),请问点P在边界内侧吗?,五、Sutherland-Hodgeman多边形裁剪算法特点:SutherlandHodgeman多边形裁剪算法具有一般性,被裁剪多边形可以是任意凸多边形或凹多边形,裁剪窗口不局限于矩形,可以是任意凸多边形。上面的算法是多边形相对窗口的一条边界进行裁剪的实现,对于窗口的每一条边界依次调用该算法程序,并将前一次裁剪的结果多边形作为下一次裁剪时的被裁剪多边形,即可得到完整的多边形裁剪程序。,7.3.1 Sutherland-Hodgeman多边形裁剪,7.3.2 W
8、eilerAtherton任意多边形裁剪,SutherlandHodgeman算法解决了裁剪窗口为凸多边形窗口的问题,但一些应用需要涉及任意多边形窗口(含凹多边形窗口)的裁剪。Weiler-Atherton多边形裁剪算法正是满足这种要求的算法。一、WeilerAtherton任意多边形裁剪算法描述:在算法中,裁剪窗口、被裁剪多边形可以是任意多边形:凸的、凹的(内角大于180o)、甚至是带有内环的(子区),见下图。,裁剪窗口和被裁剪多边形处于完全对等的地位,这里我们称:1、被裁剪多边形为主多边形,记为A;2、裁剪窗口为裁剪多边形,记为B。,7.3.2 WeilerAtherton任意多边形裁剪,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 二维 图形 裁剪

链接地址:https://www.31ppt.com/p-6376204.html