北京工业大学计算机图形学课件4-4 图元裁剪.pptVIP

北京工业大学计算机图形学课件4-4 图元裁剪.ppt

  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文档。上传文档
查看更多
2000年3月 第四节 二维图形的裁剪 是按需显示图形的必要手段 二维图形裁剪问题描述 识别出图形落在显示区域(窗口)内/外部分 图元在窗口区域内外的判别 图元与窗口的求交运算 裁剪窗口:矩形区域 续: 裁剪算法的实现 针对点阵图形 算法简单,效率低 适用于求交难度大的图形 针对参数表示图形 效率提高 适用于简单图元,如:直线、多边形、字符 直接裁剪算法 算法流程: 若线段两端点均落在窗口内: 线段可见 若线段两端点分别落在窗口的内外两侧: 计算线段与窗口边界的交点(1个),确定可见部分线段; 若线段两端点均落在窗口外: 计算线段与窗口交点(0个或2个),若无交点,则线段不可见,否则线段部分可见。 效率低下。 本节内容 线段裁剪 Cohen-Sutherland线段裁剪算法 Nicholl-Lee-Nicholl线段裁剪算法 中点分割算法:找到距端点最近的可见点 梁友栋-Barsky裁剪算法 多边形裁剪 Sutherland-Hodgman多边形裁剪算法 Wiler-Atherton多边形裁剪算法 曲线裁剪 基本问题(1) 点(x,y)在窗口内的充分必要条件: 基本问题(2) Cohen-Sutherland线段裁剪算法(1) 编码法:最早最流行的裁剪算法,可推广到三维空间。 Cohen-Sutherland线段裁剪算法(2) 流程: 线段端点编码; 利用位置编码进行裁剪 计算线段与窗口边框及其延长线的交点 实现裁剪 区域及线段端点编码 利用位置编码进行判别的规则 分别记线段端点P1,P2的编码为code1,code2 当P1,P2均在窗口内:code1=0000且code2=0000 P1,P2在同一边框线外: code1[i]=code2[i]=1,i=1,2,3,4;即code1code2!=0000, 其它 code1code2=0000且code1!=0000或code2!=0000 此时,对应非0编码位的边框线分割线段 确定裁剪线段的边框线及新线段端点 规则: code1[1]=1:线段被上边框线裁剪; code1[2]=1:线段被下边框线裁剪; code1[3]=1:线段被右边框线裁剪; code1[4]=1:线段被左边框线裁剪; 此时,计算线段与相应边框线的交点并代替端点P1。 对端点P2的处理与P1相同。 交点代替相应端点 边框线与线段交点的计算 为计算方便起见,使用线段参数表达式: 算法流程 特点分析: 快速实现完全可见与完全不可见线段的裁剪 适用于:裁剪窗口特别大或小的情形 可推广到三维线段的裁剪 Nicholl-Lee-Nicholl线段裁剪算法(1) 原理: 引入更多的区域测试来降低求交计算开销。 Nicholl-Lee-Nicholl线段裁剪算法(2) Nicholl-Lee-Nicholl线段裁剪算法(3) Case1: Nicholl-Lee-Nicholl线段裁剪算法(5) Nicholl-Lee-Nicholl线段裁剪算法(8) 点关于区域的位置关系的确定(以Case1为例): 利用斜率k 特点分析 效率高 不适宜向三维裁剪推广 梁友栋-Barsky裁剪算法 点在区域内外的判别: --针对任意边界的封闭区域 点在区域内部应满足的条件 记号: 直线参数方程(1) 直线参数方程(2) 例题 Liang-Barsky裁剪算法原理 利用线段的参数表达形式直接判别落在窗口内的部分线段 Liang-Barsky线段裁剪模型 根据矩形窗口特点,点在窗口内的条件得以简化: Liang-Barsky裁剪算法实现(1) 线段参数方程代入上式后,线段裁剪模型变形如下: Liang-Barsky裁剪算法实现(2) 以i=1为例,对应方程化简为: Liang-Barsky裁剪算法实现(3) 化简后的方程组为: Liang-Barsky裁剪算法实现(4) Liang-Barsky裁剪算法实现(5) Liang-Barsky裁剪算法实现(6) Liang-Barsky裁剪算法实现(7) Liang-Barsky裁剪算法实现(8) 对其它方程(i=2,3,4)类似地进行求解,得到线段关于其它边框线的可见部分参数区间,分别记为: ?2, ?3, ?4 线段裁剪模型方程组的解可表示为: ?1? ?2 ? ?3 ? ?4 ?[0,1]记为[tl,tr] 其中:tl=max{?1,?2,?3,?4的左端点,0} tr=min{?1,?2,?3,?4的右端点,1} 显然: 当tltr时,区间为空,线段全部不可见; 当tl=0,tr=1时,线段全部可见 Liang-Barsky裁剪算法实现(9) Liang-Barsky裁剪算法实现(10) 线段可见部分参数区间可

文档评论(0)

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

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

1亿VIP精品文档

相关文档