二维图形的裁剪.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与技术学院 二维图形裁剪 二维裁剪概念 点的裁剪 直线的裁剪 多边形的裁剪 字符串的裁剪 二维裁剪 识别图形在指定区域内和区域外的部分的过程称为裁剪算法,简称裁剪(clipping) 二维窗口是投影平面上的一个矩形。一般来说,这个矩形的边和投影平面上的坐标轴平行,图形在窗口内的部分被显示出来,窗口外的部分被裁剪掉了。平面上的图形受该矩形的裁剪称为二维裁剪。 裁剪的应用 从定义的场景中抽取用于观察的部分 在三维视图中识别出可见面 防止线段或对象的边界混淆 用实体造型来创建对象 显示多窗口的环境 允许选择图形的一部分来进行拷贝、移动或删除等绘图操作 裁剪算法类型 图形裁剪与窗口——视图变换的先后 窗口边界裁剪 视区边界裁剪 图形生成与裁剪先后 先生成后裁剪 先裁剪后生成 点的裁剪 图形裁剪中的最基本的问题。 假设裁剪窗口为一个在标准位置的矩形,即边与坐标轴平行的矩形,由上(y=ymin)、下(y=ymax)、左(x=xmin)、右(x=xmax)四条边描述。 点(x, y)在窗口内的充分必要条件是: 裁剪窗口(Xmin,Xmax,Ymin,Ymax) 是世界坐标系的窗口边界或视区边界 应用举例 爆炸场景或海面泡沫的显示 问题:对于任何多边形窗口,如何判别? 直线段裁剪 直线段裁剪算法是复杂图形裁剪的基础。复杂的曲线可以通过折线段来近似,从而裁剪问题也可以化为直线段的裁剪问题。 裁剪的目的 判断图形元素是否落在裁剪窗口之内并找出其位于内部的部分 裁剪处理的基础 图元关于窗口内外关系的判别 图元与窗口的求交 假定条件 矩形裁剪窗口:[xmin,xmax]X[ymin,ymax] 待裁剪线段: 直线段裁剪 待裁剪线段和窗口的关系 (1)完全落在窗口内,线段完全可见 (2)完全落在窗口外,显然不可见 (3)与窗口边界相交,线段至少有一端点在窗口之外,但非显然不可见 ?? 要确定一条直线段上位于窗口内的可见段,只须求出它的两个位于窗口内的可见端点即可。 算法的基本思想 把所有的直线按照它和窗口的关系分类,不同的直线使用不同的处理方法确定其可见部分。 实交点是直线段与窗口矩形边界的交点。 虚交点则是直线段与窗口矩形边界延长线或直线段的延长线与窗口矩形边界的交点。? 直线的剪裁算法 直接求交算法 矢量裁剪法 Cohen-Sutherland算法 中点分割算法 梁友栋-Barsky算法 Nicholl-Lee-Nicholl算法 直接求交算法 直线与窗口边 都写成参数形 式,求参数值。 矢量裁剪法 算法思想 先从线段的一个端点出发进行判断或进行求交运算,所得交点坐标保存在(xs,ys)中,然后再从线段的另一个端点出发用前面的判断及其求交运算求得交点坐标(x,y),最后只输出两个交点间的线段。 用窗口的四条边界的直线将窗口分为9个区。 排斥性测试 若线段满足下述四个条件之一时: max(x1,x2)≤xl min(x1,x2)≥xr max(y1,y2)≤yb min(y1,y2)≥yt 则线段必定位于窗口之外,无输出线段。 包含性测试 若线段满足:xl≤x1≤ xr, yb≤y1≤ yt,则线段的始点在0区,也即线段可见段的起点为: xs = x1 , ys= y1 求交点,并判断 I. 若x1<xl,则: 线段的起点坐标可能 位于3区、4区、5区。 而新起点的坐标可能在 直线y= yb和线段的交点上 直线y= yt和线段的交点上 直线x= xl和线段的交点上 第一种情况: 此时,若xl≤xs≤ xr 则(xs ys)为有效新起点。 第二种情况: 此时,若xl≤xs≤ xr 则(xs ys)为有效新起点。 II. 若x1>xr 线段的起点坐标可能 位于6区、7区、8区。 而新起点的坐标可能在 直线y= yb和线段的交点上 直线y= yt和线段的交点上 直线x= xr和线段的交点上 第一种情况: 此时,若xl≤xs≤ xr 则(xs ys)为有效新起点。 第二种情况: 此时,若xl≤xs≤ xr 则(xs ys)为有效新起点。 第三种情况: 此时,若yb≤ys≤ yt 则(xs ys)为有效新起点。 若此三种情况都不满足,则此线段不在窗口区内。 Cohen-Sutherland 算法 (编码算法) 算法步骤: 第一步 判别线段两端点是否都落在窗口内, 如果是,则线段完全可见;否则进入第二步; 第二步 判别线段是否为显然不可见, 如果是,则裁剪结束;否则进行第三步; 第三步 求线段与窗口边延长线的交点, 这个交点将线段分为两段,其中一段显然不可见,丢弃。对余下的另一段重新进行第一步,第二步判断,直至结束 Cohen-Suther

文档评论(0)

linyin1994 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档