网站大量收购独家精品文档,联系QQ:2885784924

[教育]6二维裁剪.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[教育]6二维裁剪

第六章 二维裁剪 主要内容 二维裁剪简介 直线段裁剪 - 点裁剪,直接求交算法 - Cohen-Sutherland算法 - Nicholl-Lee-Nicholl算法 - 重点分割算法 - 梁友栋-Barsky算法 多边形裁剪 - Sutherland-Hodgman算法 - Weiler-Atherton算法 字符裁剪 二维裁剪简介 二维裁剪简介 局部坐标系——一个物体自身的描述; 世界坐标系——一个物体在某个场景中的表现; 观察坐标系——从某个位置沿着某个方向观察物体的表现;(有时将观察坐标系与世界坐标系等同) (观察)窗口——在相应位置上观察到的那部分区域; 屏幕坐标系—— 计算机屏幕各象素的位置描述; 窗口 —— 可以显示图形的区域; 视口 —— 观察到的(观察窗口中的)图形在屏幕上的显示位置。 视觉变换 —— 将观察坐标系中窗口中的部分映射到屏幕坐标系中视口的过程。 二维裁剪简介 二维裁剪简介 给定特定区域,来判断某一图像是在该区域内部还是在此区域外部的过程,称为裁剪 。此区域称为裁剪窗口。 裁剪窗口一般为凸的多边形。最简单的裁剪窗口为矩形。 仅仅显示位于裁剪窗口内部的图形部分。 关键问题: - 图元在窗口内外的判断; - 图形元素与窗口的求交。 二维裁剪简介 两种裁剪方式: 对于扫描转换后的点阵图形进行;(设备坐标系) 优点:算法简单; 缺点:效率不高;一般用于求交难度较大的图形。 对于扫描转换前的参数图形进行。(世界坐标系) 二维裁剪简介 分析裁剪: 点裁剪; 线裁剪; 多边形裁剪; 字符裁剪; 直线段裁剪 假定裁剪窗口为矩形窗口。 待裁剪直线段与裁剪窗口的关系完全由它的两个端点与窗口的位置决定: - 完全可见:两个端点都在窗口内部; - 显然不可见:两个端点都落在窗口某条边所在直线外侧; - 至少有一个端点在窗口之外,但非显然不可见。 直线段裁剪 考虑要点: - 快速判别前两种情况; - 在第3种情况中,设法减少求交次数和每次求交时所需的计算量。 点裁剪 裁剪窗口如右图,则某点 (x,y)在窗口内的充要条件是: xmin = x = xmax,且 ymin = y = ymax 直线段裁剪—直接求交算法 直线段裁剪—直接求交算法 关键在于求直线段与边界的交点。 若两个端点 ,则可以将该线段表示成参数形式: 若窗口下边的参数方程为 将上面两组方程联立求解,得到参数对 。只有当 且 时,对应点才是有效焦点。 利用此方法求交点,计算量比较大。 直线段裁剪—Cohen-Sutherland算法 又称为编码算法。 主要思想: - 判断线段是否完全可见。若是裁剪结束;否则继续。 - 判断线段是否显然不可见。若是裁剪结束;否则继续。 - 求线段与窗口延长线的交点,此交点将线段分成两段,其中一段显然不可见,丢弃;对另一段重复进行前面的过程,直至结束。 直线段裁剪—Cohen-Sutherland算法 利用四条边界所在直线将整个平面分成9个区域,每个区域用四个bits(TBRL)来标志。 其中: if yymax then T=1;else T=0; if yymin then B=1;else B=0; if xxmax then R=1;else R=0; if xxmin then L=1;else L=0; 直线段裁剪—Cohen-Sutherland算法 可以得到两个端点的编码。 直线段完全可见当且仅当两个端点都为0000; 如果两个端点在某一位上都为1,则此线段显然不可见; 直线段裁剪—Cohen-Sutherland算法 直线段裁剪—Cohen-Sutherland算法 Nicholl-Lee-Nicholl算法 目的:降低求交次数。如右图,某些求交是不必要的。 假定待裁剪线段P0P1不是完全可见或显然可见两种特例。 算法步骤: 1)将二维平面划分为9个区域并编号,确定P0所在区域(为简单起见,只考虑P0位于0,4,5的情况); Nicholl-Lee-Nicholl算法 2)从P0点向四个交点作射线,这四条射线与边界一起将平面分为更多的小区域,如图; Nicholl-Lee-Nicholl算法 3)确定P1所在区域。根据P0P1的斜率与四条射线斜率之间的关系,以及P1与四条边界的关系可以确定。 Nicholl-Lee-Nicholl算法 4)计算相应的交点,确定P0P1的可见部分。 中点分割算法 分别从两个端点出发找同该端点最近的可见点。 Liang-Barsky算法 将直线段表示成参数形式: 对于每一条边界 定义一个方向 。 给出边

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档