- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]3_3基本图形生成算法
第三章 基本图形生成算法裁 剪 二维裁剪 1 直线段裁剪 直接求交算法 Cohen-Sutherland算法 中点分割裁剪算法 梁友栋-Basky算法 2 多边形裁剪 Sutlerland_Hodgman算法 Weiler-Atherton算法 直线段裁剪(1/16) 裁剪的目的 判断图形元素是否在裁剪窗口之内并找出其位于内部的部分 裁剪处理的基础 图元关于窗口内外关系的判别 图元与窗口的求交 裁剪、覆盖 直线段裁剪(2/16) 裁剪窗口 矩形、圆形、一般多边形 被裁剪对象 线段、多边形、曲线、字符 裁剪的策略 先裁剪,后变换 先变换,后裁剪 裁剪算法的核心问题 效率 直线段裁剪(3/16) 点裁剪 点(x, y)在窗口内的充分必要条件是: 问题:极其费时,精度不高 直线段裁剪(4/16) 假定条件 矩形裁剪窗口:[xmin,xmax]X[ymin,ymax] 待裁剪线段: 前提:任何平面线段在凸多边形窗口进行裁剪后,落在窗口内的线段不会多于1条 直线段裁剪(5/16) 待裁剪线段和窗口的关系 完全落在窗口内 完全落在窗口外 部分在内,部分在外 直线段裁剪(6/16) Cohen-Sutherland 算法 (编码算法) 关键问题: 如何快速判别完全可见和完全不可见的线段 解决方法——编码: 由窗口四条边所在直线把二维平面分成9个区域,每个区域赋予一个四位编码, CtCbCrCl,上下右左; 端点编码: 定义为它所在区域的编码 快速判断“完全不可见”: 当线段的两个端点的编码的逻辑“与”非零时 ,显然不可见 Cohen-Sutherland 算法 求交测试顺序固定(左上右下) 最坏情形,线段求交四次。 Cohen-Sutherland 算法的特点 中点分割法 基本思想: 从P0点出发找出距P0最近的可见点 从P1点出发找出距P1最近的可见点 不断地在中点处将线段一分为二,对每段线段重复Cohen-Sutherland裁剪算法的线段可见性测试方法,直至找到每段线段与窗口边界线的交点或分割子段的长度充分小可视为一点为止 取中点Pm=(P1+P2)/2。 直线段裁剪(13/16)中点分割法 特点 1、求交点的次数(n)与线段长度(L)有关,其关系为:L=2n。 2、中点分割法求出的交点是边界上的有效交点,而不是边界及延长线上的交点。 (而Cohen-Sutherland直线裁剪算法求出的则是边界上或者边界的延长线上的交点。) Liang-Barsky裁剪算法 直线L与区域的交: 当Q为空集时,线段AB不可能在窗口中有可见线段。 当Q不为空集时,Q可看成是一个一维窗口 Liang-Barsky裁剪算法 存在可见线段的充要条件 不为空集 RS,AB,TU三条线段的 交集的端点坐标 等价于求三条线段的 左端点的最大值,右端点的最小值 Liang-Barsky裁剪算法 AB有可见部分的充分必要条件也可表示为 多边形裁剪-1/2 用直线段裁剪算法,可以吗? 新的问题: Sutherland-Hodgman算法-1/4 分割处理策略: 将多边形关于矩形窗口的裁剪分解为多边形关于窗口四边所在直线的裁剪。 流水线过程(左上右下):左边的结果是右边的开始。 Sutherland-Hodgman算法-2/4 内侧空间与外侧空间 多边形的边与半空间的关系 Sutherland-Hodgman算法-3/4 裁剪结果的顶点构成: 裁剪边内侧的原顶点; 多边形的边与裁剪边的交点。 顺序连接。 Sutherland-Hodgman算法-4/4存在的问题 逐边裁剪要求裁剪窗口为凸多边形,那么凹多边形窗口怎么办? Weiler-Atherton算法-1/7 裁剪窗口为任意多边形(凸、凹、带内环)的情况 主多边形:被裁剪多边形,记为SP (Subject Polygon) 裁剪多边形:裁剪窗口,记为CP (Clip Polygon) Weiler-Atherton算法-2/7 约定: SP与CP均用它们顶点的环形链表定义 外边界取顺时针方向 内边界取逆时针方向 使得沿多边形的边走动, 其右边为多边形的内侧 Weiler-Atherton算法-3/7 SP和CP把二维平面分成两部分。 内裁剪:SP∩CP 外裁剪:SP-CP Weiler-Atherton算法-4/7 主多边形与裁剪多边形交点成对出现 分为如下两类: 进点:主多边形边界由此进入裁剪多边形内 出点:主多边形边界由此 离开裁剪多边形区域. Weiler-At
文档评论(0)