网站大量收购闲置独家精品文档,联系QQ:2885784924

平面简单多边形的直骨架实现.pdf

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
平面简单多边形的直骨架实现 定义 2D 简单多边形的直骨架 (straight skeleton ),它是一种新的多边形的骨架,是仅由简单多边 形的一些边的角平分线所组成的(如图1 所示)。 轮廓边 (contour edge ),原简单多边形上的边。图1 中红色的边。 骨架边 (skeleton edge ),由原多变形的边与边的角平分线所组成的边。图1 中蓝色和绿色 的边。 轮廓顶点 (contour vertex ),就是原多边形上的顶点。图1 中红色轮廓边相交的顶点 骨架顶点 (skeleton vertex ),是由骨架边相交而成的顶点。图1 中绿色边和绿色边,蓝色边 和蓝色边,或绿色边和蓝色边相交而成的顶点。 轮廓平分线 (contour bisector ),产生该种平分线的两条边在轮廓是相邻的。图 1 中绿色的 边。 内部平分线 (inner bisector ),产生该种平分线的两天边在轮廓上不是相邻的。图1 中蓝色 的边。 图1 简单多边形及其直骨架 实验内容 本次作业的主要内容是实现2D 简单多边形(包括凸多边形,非凸多边形,带洞多边形) 的直骨架生成算法,以及在骨架生成之后,提供了骨架等高线的生成过程演示和简单多边形 的三维屋顶演示效果。 实验目的 2D 简单多边形的直骨架有着广泛的应用,它相对于其它一般的骨架更加具有实际的应 用价值,因此实验该种骨架的生成还是十分具有学习意义的。 实验步骤 AICHHOLZER 在[1]中提出了一种2D 简单多边形直骨架的概念,在该论文中他给多边形 直骨架的概念给了一个明确、清晰地定义: 从每一条多边形的轮廓边上向多边形内部穿过一个三维的平面,所有的这些平面与多边 形的夹角都是相等的(我们演示的时候是设为45 °),这些平面在三维空间上相交,相交所产 生的三维的包围多面体上的边就相当于是多边形的屋顶的棱(可以认为原简单多边形是你家 房子的墙壁,然后所生成直骨架就相当于你家的屋顶),然后包围多面体上的所有边和顶点 在原简单多边形上进行投影,投影所得到的点和边就是简单多边形的骨架边和骨架顶点,也 就是我们实验要最终求得的点和边。 数据结构设计 多向链表:由于轮廓顶点与骨架顶点之间的拓扑关系十分复杂,一个轮廓顶点不但要指 向原多变形上prev 和 next 轮廓顶点,还要指向其相关的骨架上的顶点,这就要求我们 设计使用多向链表来维护整个多边形及其骨架的拓扑关系。见图2 。 A A 发生edge事件 B B next,指向轮廓上的一条边的起点,该边是参与该顶点的所发出的平分线计算的逆时针方向的第二条边。 prev,指向轮廓上的一条边的起点,该边是参与该顶点的所发出的平分线计算的逆时针方向的第一条边。 actNext,指向该顶点的在多向链表中的下一个未处理的顶点(active vertex)。 actPrev,指向该顶点的在多向链表中的上一个未处理的顶点(active vertex)。 startProcessed,指向该顶点(作为一条边的始点)所产生事件顶点(skeleton vertex2)。 endProcessed,指向该顶点(作为一条边的终点)所产生事件顶点(skeleton vertex2)。 Active顶点,未曾发生事件的顶点。 processed顶点,已经被处理的顶点。 图2 多向链表在发生edge 事件的前后变化 优先队列:由于整个直骨架的构造算法是基于扫描线算法,因此优先队列这种数据结构 是主要用来在O(lgn)的时间内插入新的事件点,在O(1)的时间内取出下一个事件点。在 我们的算法实现的过程中,由于针对于每一个事件点都只有两种操作插入和取出,不存 在在算法执行的过程中某个事件点的键值发生改变的情况,因此用 STL 中提供的 pri

文档评论(0)

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

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

1亿VIP精品文档

相关文档