二维图形的裁剪.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

*计算机科学与技术学院*多边形裁剪错觉:直线段裁剪的组合?新的问题:1)边界不再封闭,需要用窗口边界的恰当部分来封闭它,如何确定其边界?第62页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*多边形裁剪2)一个凹多边形可能被裁剪成几个小的多边形,如何确定这些小多边形的边界?第63页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*多边形的剪裁算法Sutlerland-Hodgman算法Weiler-Athenton算法第64页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*Sutherland-Hodgman算法对多边形裁剪的Sutherland-Hodgman算法是一种简便的方法,只要对多边形用窗口的四条边依次裁剪四次,便可得到裁剪后的多边形。分割处理策略:将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪。第65页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*基本思想:1)令多边形的顶点按边线逆时针走向排序。各边先与左窗边求交。求交后删去多边形在窗之左的部分,并插入左窗边及其延长线的交点之间的部分,从而形成一个新的多边形。然后,新的多边形按相同的方法与上窗边相裁剪。如此重复,直至与各窗边都裁剪完毕。2)多边形与每一条窗边相交,生成新的多边形顶点序列的过程,是一个对多边形各顶点依次处理的过程。第66页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*3)if(a1a2=1),则求直线与窗上边(y=yw_max)之交点,并删去交点以上部分;if(b1b2=1),则求直线与窗下边(y=yw_min)之交点,并删去交点以下部分;if(c1c2=1),则求直线与窗右边(x=xw_max)之交点,并删去交点以右部分;if(d1d2=1),则求直线与窗左边(x=xw_max)之交点,并删去交点以左部分;4)返回1)。第30页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*第31页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*中点分割算法基本思想: 从P0点出发找出离P0最近的可见点,和从P1点出发找出离P1最近的可见点。这两个可见点的连线就是原线段的可见部分。定义: 线段端点的最近可见点是指任一线段被窗口裁剪后所得两个新端点中离该端点较近的一个点。从P0点出发找出距P0最近的可见点(图中为A点),从P1点出发找出距P1最近的可见点(图中为B)。取中点Pm=(P1+P2)/2。第32页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*中点分割法与前一种Cohen-Sutherland算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况:全在、完全不在和线段与窗口有交。对前两种情况,进行一样的处理。对第三类线段的处理 当对直线段不能简取也不能简弃时,不断地用对分方法,舍去线段的不可见部分,用中点去逼近线段与窗口边界的交点。 简单地用中点分割的方法求出线段与 窗口的交点,把线段等分为二段,对 两段重复上述测试处理,直至每条线 段完全在窗口内或完全在窗口外。第33页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*实现算法:(以P0点为例说明)1)排斥性测试 测试线段是否完全被排斥在窗口之外,若是,则无线段输出,算法结束。否则执行下一步;2)包含性测试 测试P1点是否包含在窗口内,如果是,则P1点即为P0的最远可选点,算法结束,否则,执行下一步;3)将直线段P0P1于中点Pm处分割,则分如下几种情况处理:第34页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*线段MP1完全在窗口之外,那么便以线段P0M为新的线段P0P1,然后返回算法的第一步重新开始测试;如果线段MP1没有被完全排斥在窗口之外,那么便以线段MP1作为新线段P0P1,然后返回算法的第一步。P0P1MP0P1MP0P1MP0P1M第35页,讲稿共93页,2023年5月2日,星期三*计算机科学与技术学院*中点分割算法-求线段与窗口的交点从P0出发找距离P0最近可见点采用中点分割方法先求出P0P1的中点Pm,若P0Pm不是显然不可见的, 并且P0P1在窗口中有可见部分, 则距P0最近的可见点一定落在 P0Pm上,所以用P0Pm代替P0P1;否则取PmP1代替P0P1。再对新的P0P1求中点Pm。重复上述过程,直到PmP1长度

文档评论(0)

lanlingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档