第5节 图形运算.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 图形运算 第一节 线段的交点计算 第二节 多边形表面的交线计算 第三节 平面中的凸壳算法 第四节 包含与重叠 第五节 简单多边形的三角剖分 若两线段相交,则交点的参数值,应满足: 即 因此,若行列式 两线段AB和CD交点的算法 1.〔计算行列式〕 若 =0,则两线段重合或平行,可算做无交点,算法结束; 2.〔计算交点参数〕 若 0或 1,则无交点,算法结束; 若 0或 1,则无交点,算法结束; 3.〔计算交点〕 输出交点(x,y)后算法结束; 假设:为简便起见,要求交点的n条线段中没有垂直的线段(规定的次序关系对垂直的线段不适合 ),也没有三条以上的线段交于一点的情况。 两线段相交的必要条件: 若两线段相交,则必然存在某个x,使它们在规定的次序关系x下是相邻的。 算法从左向右扫描,在扫描过程维持正确的线段间上述次序关系。这种次序关系只能有三种可能的变化方式: 1.遇见某条线段S的左端点,此时S应加入次序关系。 2.遇见某线段S的右端点,此时S应从次序关系中删除。 3.遇到某两条线段S1和S2 的交点,这时在次序关系中S1和S2交换位置。 算法的数据结构和实现过程: 算法实施需要两个基本的数据结构: 扫描线状态表和事件点进度表 扫描线状态表L:存放按次序关系x排序的线段的序列。初始为空, 扫描过程中当关系x改变时变化。 事件点:扫描过程中可能使次序关系x发生变化的点, 事件点进度表E:存放事件点的表,初始为n条线段的2n个端点,在平面扫描过程中求出的交点,应及时地插入到事件点进度表中。 扫描线状态表应能支持以下四个操作: (1)INSERT(S,L),把线段S插入到扫描线状态表L中,注意应插入到适当位置以保持正确的次序关系。 (2)DELETE(S,L),从L中删除线段S。 (3)ABOVE(S,L),返回次序关系中S上面紧接着 的线段的编号。 (4)BELOW(S,L),返回次序关系中S下面紧接着 的线段的编号。 事件点进度表E应能支持以下三个操作: MIN(E),取出表E中的最小元素。 (2) INSERT(x,E),把横坐标为x的一个点插入到表 E中,插入要使E中事件点存放保持递增次序。 (3) MEMBER(x,E),判定横坐标为x的点是否在事件点进度表E中。 算法: 1.〔事件点进度表E初始化〕将输入待求交点的n条线段的2n个端点按x,y字典式排序后存放于表E中; 2.〔准备收集交点〕A← ;{A是一集合,初为空,准备存入找到的交点;} 3.〔平面扫描〕若表E不为空,则进行(1)~(3)循环。直到表E为空时算法结束。 3.1〔取出当前事件点〕P←MIN(E); 3.2〔当前事件点处理〕考查当前事件点P,分三种情况: (1) 若P是边S的左端点,则做: INSERT(S,L); S1=ABOVE(S,L); S2=BELOW(S,L); 若S和S1相交,则求出的交点送入集和A中; 若S和S2相交,则求出的交点送入集和A中; (2) 若P是边S的右端点,则做: S1=ABOVE(S,L); S2=BELOW(S,L); 若S1和S2相交于点P的右边,则求出的交点送入集和A中; DELETE(S,L); (3) 若P是边S1和S2的交点,且在P的左边S1=ABOVE(S2),则做 S3=ABOVE(S1,L); S4=BELOW(S2,L); 若S3和S2相交,则求出的交点送入集合A中; 若S4和S1相交,则求出的交点送入集合A中; 在L中交换S1和S2的位置; 3.3 〔处理找到的交点〕若集合A不为空,做下面循环,直至A为空: 取出集合A中一个交点,其横坐标是x; 若MEMBER(x,E)为FALSE ,则输出此交点, 并做 INSERT(x,E); (交点是不是第一次求得) 设有三条线段S1,S2,S3,它们的坐标如下 (1,1),(5,3,),(2,3),(4,1),(6,4),(8,2).要计算所有交点。 算法初始形成的事件点进度表E,可有形式 (((1,1),S1左端点),((2,3),S2左端点), ((4,1),S2右端点),((5,3),S1右端点), ((6,4),S3左端点),((8,8),S3右端点)) 第二节 多边形表面的交线计算 多边形:空间多面体的表面,设为凸多边形表面,分别由它们的顶点坐标逆时针方向的序列确定,即约定按顶点序列前行时内部在左侧。 求交步骤:(已知两个多边形定点序列) 1.根据顶点坐标求出两个多边形表面分别所在平面 的方程 2.根据平面方程计算交线 3.确定出交线同时在两个多边形表面内部的部分 1.求平面方程 采用

文档评论(0)

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

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

1亿VIP精品文档

相关文档