第4章 图形变换与裁剪3.ppt_第1页
第4章 图形变换与裁剪3.ppt_第2页
第4章 图形变换与裁剪3.ppt_第3页
第4章 图形变换与裁剪3.ppt_第4页
第4章 图形变换与裁剪3.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 哈尔滨工业大学计算机学院苏小红 第五章图形变换与裁剪 2 二维裁剪 1直线段裁剪直接求交算法Cohen Sutherland算法中点分割裁剪算法梁友栋 Basky算法2多边形裁剪Sutlerland Hodgman算法Weiler Atherton算法 3 直线段裁剪 1 15 裁剪的目的判断图形元素是否在裁剪窗口之内并找出其位于内部的部分裁剪处理的基础图元关于窗口内外关系的判别图元与窗口的求交裁剪 覆盖 4 直线段裁剪 2 15 裁剪窗口矩形 圆形 一般多边形被裁剪对象线段 多边形 曲线 字符裁剪的策略先裁剪 后变换先变换 后裁剪裁剪算法的核心问题效率 5 直线段裁剪 3 15 点裁剪点 x y 在窗口内的充分必要条件是 问题 对于任何多边形窗口 如何判别 6 直线段裁剪 4 15 假定条件矩形裁剪窗口 xmin xmax X ymin ymax 待裁剪线段 任何平面线段相对于凸多边形窗口进行裁剪后 7 直线段裁剪 5 15 待裁剪线段和窗口的关系完全落在窗口内完全落在窗口外部分在内 部分在外 8 直线段裁剪 6 15 为提高效率 算法设计时应考虑 1 快速判断情形 1 2 2 设法减少情形 3 求交次数和每次求交时所需的计算量 9 Cohen Sutherland算法 编码算法 算法步骤 第一步判别线段两端点是否都落在窗口内 如果是 则线段完全可见 否则进入第二步 第二步判别线段是否为显然不可见 如果是 则裁剪结束 否则进行第三步 第三步求线段与窗口边延长线的交点 这个交点将线段分为两段 其中一段显然不可见 丢弃 对余下的另一段重新进行第一步 第二步判断 直至结束 裁剪过程是递归的 直线段裁剪 7 15 10 特点 对显然不可见线段的快速判别编码方法 由窗口四条边所在直线把二维平面分成9个区域 每个区域赋予一个四位编码 CtCbCrCl 上下右左 Cohen Sutherland算法 直线段裁剪 8 15 11 端点编码 定义为它所在区域的编码结论 当线段的两个端点的编码的逻辑 与 非零时 显然不可见 Cohen Sutherland算法 直线段裁剪 9 15 12 求交测试顺序固定 左上右下 最坏情形 线段求交四次 对于那些非完全可见 又非完全不可见的线段 需要求交 求交前先测试与窗口哪条边所在直线有交 按序判断端点编码中各位的值ClCtCrCb Cohen Sutherland算法 直线段裁剪 10 15 13 1 特点 用编码方法可快速判断线段 完全可见和显然不可见 2 特别适用二种场合 大窗口场合窗口特别小的场合 Cohen Sutherland算法的特点 直线段裁剪 11 15 14 中点分割法 基本思想 从P0点出发找出距P0最近的可见点从P1点出发找出距P1最近的可见点不断地在中点处将线段一分为二 对每段线段重复Cohen Sutherland裁剪算法的线段可见性测试方法 直至找到每段线段与窗口边界线的交点或分割子段的长度充分小可视为一点为止取中点Pm P1 P2 2 直线段裁剪 12 15 15 Liang Barsky裁剪算法 直线L与区域的交 当Q为空集时 线段AB不可能在窗口中有可见线段 当Q不为空集时 Q可看成是一个一维窗口 直线段裁剪 13 15 基本思想 把二维裁剪化为一维裁剪问题 并向x 或y 方向投影以决定可见线段 16 Liang Barsky裁剪算法 直线段裁剪 14 15 存在可见线段的充要条件不为空集 向x轴投影 就得到可见线段上点的坐标的变化范围为 左端点 右端点 17 Liang Barsky裁剪算法 AB有可见部分的充分必要条件也可表示为 直线段裁剪 15 15 18 多边形裁剪 1 2 用直线段裁剪算法 可以吗 新的问题 边界不再封闭 需要用窗口边界的恰当部分来封闭它 19 分裂为几个多边形 多边形裁剪 2 2 关键 不仅在于求出新的顶点 删去界外顶点还在于形成正确的顶点序列 20 Sutherland Hodgman算法 1 4 分割处理策略 将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪 流水线过程 左上右下 左边的结果是右边的开始 亦称逐边裁剪算法 21 Sutherland Hodgman算法 2 4 内侧空间与外侧空间多边形的边与半空间的关系 22 Sutherland Hodgman算法 3 4 裁剪结果的顶点构成 裁剪边内侧的原顶点 多边形的边与裁剪边的交点 顺序连接 优点 裁剪算法采用流水线方式 适合硬件实现 可推广到任意凸多边形裁剪窗口 23 Sutherland Hodgman算法 4 4存在的问题 逐边裁剪要求裁剪窗口为凸多边形 那么凹多边形窗口怎么办 逐边裁剪法对凹多边形裁剪时 裁剪后分裂为几个多边形 这几个多边形沿边框产生多余的线段 24 Weiler Atherton算法 1 6 裁剪窗口为任意多边形 凸 凹 带内环 的情况主多边形 被裁剪多边形 记为SP裁剪多边形 裁剪窗口 记为CP 25 约定 SP与CP均用它们顶点的环形链表定义外边界取顺时针方向内边界取逆时针方向 Weiler Atherton算法 2 6 26 SP和CP把二维平面分成两部分 内裁剪 SP CP外裁剪 SP CP Weiler Atherton算法 3 6 裁剪结果区域的边界由SP的部分边界和CP的部分边界两部分构成 并且在交点处边界发生交替 即由SP的边界转至CP的边界 或由CP的边界转至SP的边界 27 Weiler Atherton算法 4 6 主多边形与裁剪多边形交点成对出现分为如下两类 进点 主多边形边界由此进入裁剪多边形内出点 主多边形边界由此离开裁剪多边形区域 28 Weiler Atherton算法 5 6 主多边形表 裁剪多边形表 S1 S2 I1 S3 S4 S5 S6 I2 I3 I4 I5 I6 I7 I8 C1 C2 I3 I4 C4 I8 I1 I2 I5 C3 I5 I6 S1 I7 C1 开始 结束 29 Weiler Atherton算法 6 6 主多边形表 裁剪多边形表 S1 S2 I1 I4 S4 S6 I5 I2 I3 S3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论