第六章二维切割.ppt

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

第6章 二维裁剪 ; 裁剪可以对扫:描转换之后的点阵图形在设备坐标系中进行,也可以在世界坐标系中对扫描转换之前的参数表示的图形进行。 前者算法简单,但效率不高,因为无论图形落在窗口的内部还是外部,都要扫描转换,它一般适用于求交难度较大的图形。而后者主要应用于点、线、多边形等简单图元。由于世界坐标系一般为浮点坐标系,故有时也称世界坐标系中的裁剪为分析裁剪,它是大多数图形系统所采用的裁剪方法。 本章主要介绍三种简单字二维图元即直线段、多边形、符裁剪的基本方法。 ;6.1 直线段裁剪 ;;6.1.1 点裁剪 在讨论线段裁剪之前,先看看简单的点裁剪问题,它是线段裁剪以及后面的多边形裁的基础。如果矩形裁剪窗口的左、右边的横坐标和上、下边的纵坐标如前文所述,那么点 (x,y)在窗口内的充分必要条件是: xmin≤x≤xmax,ymin≤y≤ymax 如果上面四个不等式中任何一个不满足,则(x,y)点位于窗口之外。 对于任意多边形窗口,需要根据第4章提到的点在多边形区域内外的判别方法进行判别。 ;6.1.2 直接求交算法 裁剪一条直线段,只需考虑它的两个端点关于矩形窗口的关系就可以了。 如果两个端点都在窗口内部(如图6.1中的AB),那么线段完全可见。 如果一个端点在窗口内,一个端点在窗口外:(如图6.1中的CD),则线段与窗口的边有一个交点,交点与窗口内的端点间的连线即为该线段的可见部分。 如果两端点都在窗口外部,则线段与窗口可能不相交(如图6.1中的EF,IJ),也有可能相交(如图6.1中的GH),需要进一步计算以确定它们是否相交。 根据以上分析,一个裁剪线段的简单方法的框图如图6.2所示(当待裁剪线段平行于窗口的边时,情况很简单,这里假定它们不平行于窗口的边。) ;戴棵志节粗色挑姬娇皖坊害僳屋五凉回鸡捆衣谢股助传陌涌诽宛世寺柒移第六章二维切割第六章二维切割; 为了求直线段与窗口的边的交点,我们将线段写成参数形式。例如 的参数方程为: 矩阵窗口下边的参数方程为: 和窗口下边的交点满足方程组: 求解方程组得到交点所对应的参数对 ,只有当 [0,1]且 [0,1]时, 所对应的交点才 是有效交点,即真正落在PoP1和窗口边上而不是它们的延长线上。;6.1.3 Cohen—Sutherland算法 Cohen—Sutherland裁剪算法有时也称为编码算法。该算法分为三个步骤: 第一步判别线段两端是否都落在窗口内,如果是,则线段完全可见;否则进入第二步,判别线段是否为显然不可见,即线段的两端点均落在窗口某边所在直线的外侧,如果是,则裁剪结束;否则进行第三步,求线段与窗口边延长线的交点,这个交点将线段分为两段,其中一段显然不可见,丢弃。对余下的另一段重新进行第一步、第二步判断,直至结束。整个裁剪的过程可以看作一个递归的过程。 为了实现这个算法,首先用窗口四条边所在的直线(见图6.3)将整个二维平面分成9个区域,每个区域赋予一个四位的编码 ,其中各位编码的含义如下: ;; 然后确定线段的两个端点的编码,端点的编码即为它所在区域的编码。这样判断端点是否在窗口内部,只需判断它的编码值是否为0。注意到编码中各个位的含义,当两个端点的编码的逻辑“与”非0时,它们必然均落在窗口某边的外侧,亦即线段为显然不可见的。例如图6.1中的线段EF和IJ,E和F的编码分别是0001和1001,它们的与为0001,不为0,从而EF显然不可见。I和J的编码分别是0100和0010,它们的与为0,从而IJ不是显然不可见的。 对既非完全可见、又非显然不可见的线段,如图6.4中的AD,需要求交。求交前先要测试线段和窗口哪条边所在直线有交,这只要判断线段两端点编码中各位的值即可。如图6.4中的AD,D点编码中的 而A点编码中的 ,则知道AD和窗口的左边所在的直线有交。在程序中,求交测试的顺序是固定的。不妨假定求交测试的顺序为窗口的左边、上边、右边、下边。按照这个顺序,图6.4中线段EF和窗口;四边被求出的交点顺序为F,I,H,G。从而在Cohen—Sutherla

文档评论(0)

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

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

1亿VIP精品文档

相关文档