任意多边形顶点凸凹性判别的简捷算法-软件学报.PDF

任意多边形顶点凸凹性判别的简捷算法-软件学报.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1000-9825/2002/13(07)1309-04 ©2002 Journal of Software 软 件 学 报 Vol.13, No.7 任意多边形顶点凸、凹性判别的简捷算法 刘润涛 (哈尔滨理工大学 计算机应用技术研究所,黑龙江 哈尔滨 150080) E-mail: liurt@0451.com 摘要: 给出了一种确定任意多边形顶点凸、凹性的简捷算法.该算法只需要2n+4 次乘法,5n+10 次加、减法及2n+3 次比较即可完成(n 是多边形顶点的个数). 同时,给出了任意简单多边形走向的充要条件. 关 键 词: 多边形;凸凹性;算法;走向;充要条件 中图法分类号: TP391 文献标识码: A 在模式识别、图像处理、曲面插值等方面常常遇到对多边形区域或离散点进行分割的问题,如能预先确定 每个多边形顶点的凸、凹性,就可使该问题的解决得到简化[2,3].对于判别任意多边形顶点的凸、凹性的问题,文 2 2 献[1]给出了一个算法,其时间复杂性为 O(n logn)次乘法和 O(n )次比较.本文所给出的算法,其时间复杂度仅为 2n+2 次乘法,2n 次加、减法及3n 次比较,时间复杂度减少. 本文首先给出几个相关的概念,然后讨论任意简单多边形走向判别的充要条件.之后给出任意多边形顶点 凸、凹性判别的算法.最后对该算法的时间复杂度进行分析. 1 基本概念 为叙述方便,先给出几个相关的定义. 定义1. 设p =(x ,y ),i=1,2,3,…,n,p =p 是给定多边形的n 个顶点,若对任意i,j(i≠j ),i,j= 1,2,3,…,n,线段p p i i i n+1 1 i i+ 1 与p p 或是相邻且相交于一端点或不相交,则称该多边形为简单多边形. j j+ 1 定义2. 设p ,…,p ,p =p 是一个简单多边形.若线段p p 与线段p p 所形成的内角( 即由该多边形所围 1 n n+ 1 1 i−1 i i i+ 1 ° 有界区域内所形成的角)是一个不超过 180 的角,则称顶点p i 是凸的,否则,称p i 是凹的. 由此定义可知,对任意一个简单多边形,其每个顶点或是凸的,或是凹的. 定义3.设p 1,p 2, …,p n,p n+ 1=p 1 是一个简单多边形.若沿p 1→p 2 …p n →p n+ 1 方向走,该简单多边形所围的有界区 域总在左边,则称该多边形的走向是逆时针的;反之,称其走向是顺时针的. 2 简单多边形走向的充要条件 给定一个简单多边形,其顶点为 p 1,p 2,…,p n,p n+1=p 1,它的走向是逆时针的还是顺时针的,对于判别每个顶点 的凸、凹性是很重要的.如何用较小的计算量解决这个问题是确定每个顶点的凸、凹性的一个关键步骤. 解决该问题的思路是:先求出给定的多边形n 个顶点的x 值或y 值最大或最小的点(称其为极值点),使该多 边形落入由这些x 值和y 值最大或最小的点构成的矩形内(注意,一定有点落在4 条边上),如图 1 所示.然后,依 据该多边形在每个极值点处与相邻两顶点的位置关系,就可以确定该多边形的走向. 下面以y 值最大的点为例说明该方法的实现过程. 收稿日期: 2000-1 1-29; 修改日期: 2001-04-26 基金项目: 国家自然科学基金资助项目;黑龙江省自然科学基金资助项目(F9706) 作者简介: 刘润涛(1961 -),男,黑龙江东宁人,副研究员,主要研究领域为计算机辅助几何设计,计算机图形算法. 1310 Journal of Software 软件学报 2002,13(7) p 1

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档