[发明专利]一种判断目标点是否位于多边形区域内部的方法在审
申请号: | 201210398610.2 | 申请日: | 2012-10-19 |
公开(公告)号: | CN102982562A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 李健;刘中秋 | 申请(专利权)人: | 浙江中正智能科技有限公司 |
主分类号: | G06T7/60 | 分类号: | G06T7/60 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 310012 浙江省杭州市西湖区文三路90*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 判断 目标 是否 位于 多边形 区域 内部 方法 | ||
技术领域
计算机图形技术和计算机几何技术领域,特别涉及一种判断目标点是否位于多边形区域内部的方法。
背景技术
点是否位于多边形内的判断计算,是计算几何中的一个基本问题,这方面的方法在计算机图形学、模糊识别、地理信息系统等众多领域有着广泛的应用。
传统的判定点是否位于多边形内的方法有如下几种:
面积法:多边形的所有边和目标点组成的三角形面积和是否等于总的多边形面积,如果相等,则在内部。反之在外部。这种方法计算量较大,用到的主要计算是查乘。
夹角和法:判断所有边和目标点的夹角和,如果夹角和为360度,则在多边形内部。计算量比面积法稍小,用到主要是点乘和求模计算。
引射线法。从目标点出发引一条射线,判断这条射线和所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部。此方法存在较多的特殊情况处理,如经过顶点或者与边线重叠等。
在中国专利CN200710121506.8中公开了一种判定方法,其先对多边形进行凸剖分,并建立二叉树来管理这些凸边行,然后,根据被检测点的坐标位置,对所建立的二叉树进行考察,以找到该二叉树的一叶节点对应的凸多边形,再检测该点是否位于这个凸变形内;这种方法在多边形的预处理的时间、空间需求和判断计算等各个方面具有相同的复杂度
现有技术存在以下的问题:
1、判断方法步骤复杂、繁琐、不够简易;
2、空间需求比较大、计算速度较慢;
3、判断点是否在多边形内的准确度不高。
发明内容
为了克服现有技术的缺陷,本发明公开了一种判断目标点是否位于多边形区域内部的方法,这种定位方法判断方法计算量小,准确度高,易于实现。
本发明公开了以下技术方案:
一种判断目标点是否位于多边形区域内部的方法,包括如下步骤:
S1:定义构造规则:目标点为P0,多边形各顶点以顺时针方向依次为P1,P2,P3,…, Pi-1,Pi,Pi+1,…,Pn;
S2:遍历所有的边,如果目标点P0在边的法向投影范围,则计算目标点P0与该边的距离D0i,否则计算目标点P0与该边两个顶点的最小距离D0i,记录最小距离,以及对应的边或者顶点;如果目标点P0距离边最近,那么选择两个顶点中的任意一个为Pi,如果目标点距离顶点最近,那么以该顶点为Pi;同时以Pi点水平向右为X正向;
S3:计算角度
a)Ai1=∠XPiPi-1,Ai1为PiX以Pi为中心、顺时针旋转到P1Pi-1所形成的角度;
b)Ai2=∠XPiPi+1,Ai2为PiX以Pi为中心、顺时针旋转到PiPi+1所形成的角度;
c)Ai0=∠XPiP0,Ai0为PiX以Pi为中心、顺时针旋转到PiP0所形成的角度;
S4:通过计算三个角度之间的关系来判断点的位置
a)如果Ai1> Ai2,且Ai1 >Ai0> Ai2,则目标点P0在多边形区域内,否则在多边形区域外;
b)如果Ai1< Ai2,且Ai0 <Ai1或Ai0> Ai2,则目标点P0在多边形区域内,否则在多边形区域外;
c)Ai1=Ai0或Ai2=Ai0,则判定为在多边形边线上。
较佳地,所述的判断目标点是否位于多边形区域内部的方法,还包括S5:如果多边形为中间镂空或者为环形,此多边形包括外圈多边形和内圈多边形,则满足目标点P0在外圈多边形内部,且目标点P0在内圈多边形外部,否则目标点P0在多边形区域外。
较佳地,所述的判断目标点是否位于多边形区域内部的方法,其S2中如果有若干个顶点距离P0相等,可选取其中任意一顶点为Pi。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江中正智能科技有限公司,未经浙江中正智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210398610.2/2.html,转载请声明来源钻瓜专利网。