CN109582745A - 微分射线法判定点与封闭图形位置关系的方法 - Google Patents
微分射线法判定点与封闭图形位置关系的方法 Download PDFInfo
- Publication number
- CN109582745A CN109582745A CN201810740596.7A CN201810740596A CN109582745A CN 109582745 A CN109582745 A CN 109582745A CN 201810740596 A CN201810740596 A CN 201810740596A CN 109582745 A CN109582745 A CN 109582745A
- Authority
- CN
- China
- Prior art keywords
- point
- value
- closed
- line
- ray
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
本发明提供一种快速判定点与多边形关系的方法,对传统射线法做了较大改进。利用微分思想将图形转换成点连接组成的多边形,并新建可快速检索的数据结构来保存这些点的信息,将传统射线法的射线‑线段关系判断,转换成待查点‑数据结构之间的值查找和比较计算,得出射线和图形的相交次数值。根据该值的奇偶性,由射线法的通用规则,得出待查点和多边形的位置关系。其时间复杂度为O(1),与边数N没有相关关系,在复杂图形、精密度要求较高的计算场合,性能较传统方法有较大提升。
Description
技术领域
本发明涉及地理信息***GIS应用中,快速识别地图上的点和任意封闭图形位置关系的方法。
背景技术
判定点是在多边形区域内还是在多边形区域外,这种位置关系的获得是导航、高精度定位、自动驾驶等领域的重要技术,在交通、科研上运用广泛;例如共享单车、共享汽车的租赁业务活动中,需要判断单车、汽车是否进入禁止停车区域,一旦判断进入禁停区域且用户准备停车,运营企业需采用提示报警、无法结束业务等手段来提醒使用者驶离。
一般是根据拓扑学的射线法来实现对点和多边形关系的判定,如附图1所示:
基于该点做一条射线,逐个计算多边形的所有边与射线是否相交,如果相交次数为奇数,则判定点在多边形内,如果相交次数为偶数或者为0,则判定点在多边形外,如附图1:
1:绿色点向右做的射线与多边形的各边的相交次数为4,为偶数,判定该点在多边形的外部;
2: 1、2之间的点,向右做射线,与多边形的相交次数分别在2、3、4,为奇数,判定该点在多边形的内部。
对于边数为N的多边形,上述传统射线法需要进行每条边与射线进行计算,判定是否相交,N条边逐个都要比较,时间复杂度为O(N);浪潮通信信息***有限公司申请的《201510255047.7》专利、阿里巴巴集团控股有限公司申请的《CN201810029493.X》专利对上述射线法做了改进,但没有避免对点或者线段的逐个判断,复杂度并没有数量级上的优化,上海卓易科技股份有限公司申请的《201610242654.4》专利对射线法做了较大程度的改进,时间复杂度降低到O(㏒N),是较优秀的方案。
发明内容
现提供一种快速判定点与多边形关系的方法,其时间复杂度为O(1),与边数N没有相关关系,在复杂图形、精密度要求较高的计算场合,性能较传统方法和上述专利提供的方法有较大提升。
本发明的数学思想,来自于牛顿-莱布尼茨的微分学理论,拓扑学的射线法规则,以及图形测量学的一般规则。同时运用了计算机学科的数据结构和算法的知识。
微分射线法判定点与封闭图形位置关系的方法,其实施过程为:
1:利用微分思想将图形转换成点连接组成的多边形,这些点被称为线上点,其特征是:位于图形线上,投射到X轴上的坐标值等距(△x)。新建数据结构来保存线上点的信息;
2:将射线法的射线-线段关系判断,转换成待查点-线上点构成数据结构之间的值查找和比较计算,得出射线法所需要的相交次数值;
3:根据相交次数值的奇偶性,由射线法的通用规则,得出待查点和多边形的位置关系。
附图说明
附图1射线法的图形描述。
附图2用线上点连线成多边形来描述一般曲线图形。
附图3 本发明的数据结构:线上点坐标值组成的“查找表-数组”。
附图4 待查点在查找表上没有找到对应的X坐标值。
附图5 待查点在查找表上找到了对应的X坐标值,且大于其Y值的点的个数为偶数。
附图6待查点在查找表上找到了对应的X坐标值,且大于其Y值的点的个数为奇数。
具体实施方式
二维X-Y笛卡尔直角坐标系中的任何封闭图形,例如矩形、三角形、菱形、平行四边形、圆形、椭圆,以及其他不规则的封闭图形,都是由曲线线段(直线线段是曲线线段的一种特殊形式)组成的。而曲线线段可以使用微分方法,用曲线上的特定点(以下简称线上点)的逐个连线来模拟,这些点的特征是:在X轴上等间隔△x。根据微分学极限的思想,只要△x足够小,lim(△x—>0),特定点的连线将无限的逼近原有曲线。使用特定点的连线组成的多边形,将更接近于原始图形。下面将以二维坐标系上一个典型的封闭图形:椭圆为例来阐述本发明。如附图2,在特定△x值的情况下,图上椭圆可以描述为12个线上点的连线组合的多边形。这12个点分别是(X1,Y1)、(X1,Y2)、(X1+△x,Y3)、(X1+2△x,Y4)、(X1+3△x,Y5)、(X1+4△x,Y6)、(X1+5△x,Y7)、(X1+5△x,Y8)、(X1+4△x,Y9)、(X1+3△x,Y10)、(X1+2△x,Y11)、(X1+△x,Y12)。
根据测量的原理,如果△x足够小,测量时以△x为精度的话,待判定的任意点T(以下简称待查点,坐标为Xt、Yt)的X轴坐标值Xt,都可以被测量成一个基准值X1 + △x的整数倍。
本发明的思路是,利用存储空间换取时间性能的提升。根据微分法,封闭图形上曲线转换成X轴上等间隔的线上点组成的多边形,射线法中的射线特殊化为垂直于X轴向上的射线,将传统射线法中射线-线段相交判断,转换为待查点与线上点构成数据结构的查找-数值比较判断,继而找到射线和图形的相交点数,从而根据射线法的规则,确定点和图形的位置关系。
程序一般包含数据结构和算法。本发明准备数据结构的方法是:将封闭图形转换成线上点的集合,并按如下规则存入存储介质:存储线上点里面X最大值Xmax、最小值Xmin;存储X值相同的线上点,将其Y坐标轴顺序存为一个数组;以前述椭圆为例,线上点组成的数据结构如下:
Xmax为X1+5△x,Xmin为X1;
Y2和Y1 顺序存储成一个数组,对应着关键值X1;
Y3和Y12顺序存储成一个数组,对应着关键值X1+△x;
Y4和Y11顺序存储成一个数组,对应着关键值X1+2△x;
Y5和Y10顺序存储成一个数组,对应着关键值X1+3△x;
Y6和Y9 顺序存储成一个数组,对应着关键值X1+4△x;
Y7和Y8 顺序存储成一个数组,对应着关键值X1+5△x;
在存储介质上另外用数组的形式建立一个查找表(以下简称查找表),该表顺序的存储着具体X值对应的数组首地址:
第1个节点指向关键值X1对应的数组;
第2个节点指向关键值X1+△x对应的数组;
第3个节点指向关键值X1+2△x对应的数组;
第4个节点指向关键值X1+3△x对应的数组;
第5个节点指向关键值X1+4△x对应的数组;
第6个节点指向关键值X1+5△x对应的数组;
生成的数据结构见附图3。
本发明的算法,要判定(Xt,Yt)该点是否在封闭图形内,首先根据待查点的X坐标值Xt,在顺序查找表里检索,看是否有对应的X坐标值:
如果Xt大于Xmax(即X1+5△x)或者Xt小于Xmin(即X1)
那么,T在查找表上没有对应的X坐标值;
否则,
T在查找表上有对应的X坐标值。
如果T在查找表上没有对应的X坐标值,如附图4,大圆点为(Xt,Yt),Xt小于Xmin。说明以待查点为起点,做平行于Y轴方向做射线,无论是向上还是向下,均与图形任何线上点无相交。根据射线法的规则,该待查点在图形外部。
如果T在查找表上有对应的X坐标值,说明待查点所在的垂直于X轴的直线,与图形有相交点。此时根据射线法的规则,沿着该待查点,沿着Y轴向上做的射线,判断和图形交点数目,即可得到图形和待查点的关系;为得到交点数目,本发明逐个比较Xt所对应数组内各个线上点的Y值和待查点的Y值的大小:
如果大于待查点的Y值的线上点有偶数个或者0个,说明沿着该待查点,沿着Y轴向上做的射线与原图有偶数个或者0个相交点,根据射线法的规则,该待查点在图形外部。
如果Xt所对应数组中大于待查点的Y值的线上点有奇数个,说明该射线与原图有奇数个相交点,根据射线法的规则,该待查点在图形内部;
如附图6,待查点坐标(Xt,Yt),Xt等于X1+△x,则在查找表上找第二个节点,并找到对应的Y值数组,该数组中有Y3、Y12两个Y值,经比较,Y3大于Yt,Y12小于Yt,说明沿着该待查点,平行Y轴向上做的射线与原图有1个相交点(X1+△x,Y3),1为奇数,根据射线法的规则,该点应在图形内。
将上述X-Y坐标系替换为Y-X坐标系、经纬度坐标系,或者变换成三维坐标系,或者将比较大于Yt的计算改为小于Yt的计算,只要是满足如下2个特征均应视为本发明的衍生形式,在本发明所保护的范围内:
1:利用微分法将图形分解成某坐标轴上等距的线上点组成的多边形,不论是否运用本发明给出的数据结构;
2:将射线法的射线-线段关系判断,转换成点-线上点构成数据结构之间的坐标值查找、比较得出射线法所需要的相交次数值,不论是否运用本发明给出的算法。
Claims (15)
1.微分射线法判定点与封闭图形位置关系的方法,其特征在于:利用微分思想将封闭图形转换成点连接组成的内接多边形,这些点被称为线上点,新建数据结构来保存线上点的信息;将拓扑学中射线法要求的射线-线段是否相交关系判断,转换成待判定点-线上点信息构成数据结构之间的值查找和比较计算,得出射线法所需要的相交次数值;依据射线法的原理,相交次数为0或者偶数时,点在复杂图形之外,相交次数为奇数时,点在复杂图形之内。
2.根据权利要求1所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,其线上点的设置方法为:在封闭图形所在平面的某一个数轴X轴上,从0点出发,左右两个方向每隔dx做一条垂直于X轴的直线,直线与封闭图形相交的点,即为线上点,封闭图形上相邻的两个线上点连接生成线段,所有的线段构成图形的内接多边形。
3.根据权利要求2所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,由测量精度来决定dx的取值,精度要求越高,dx设置越小,内接多边形与封闭图形越接近,用内接多边形来代替封闭图形来进行位置判断,误差也就越小。
4.根据权利要求2所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,该平面可以是笛卡尔X-Y坐标系,投射的数轴可以是X轴,也可以是Y轴;该平面也可以是球面经纬度坐标系,投射的数轴可以是经度轴,也可以是纬度轴。
5.根据权利要求1所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于:线上点所组成的数据结构,将相同X值的线上点,其Y轴坐标值构成一个子集合;各个子集合按X值进行顺序排列,构成一个大的集合。
6.根据权利要求5所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,相同X值的线上点构成的子集合,内部可以按Y值的大小进行顺序排列。
7.根据权利要求5所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,子集合可以用计算机程序设计的连续性数组来实现,也可以用离散性的链表来实现。
8.根据权利要求5所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,大的集合中各个子集合按X值的大小顺序分布,可根据X来查找是否有对应的子集合,及对应哪个子集合。
9.根据权利要求5所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,大的集合保存了各个子集合中X值最大值和最小值。
10.根据权利要求8所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,大的集合用计算机程序设计的连续性数组来实现对子集合的管理。
11.根据权利要求1所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,待判定点的X轴坐标值由测量精度决定其取值精度,可以认为是dx的某个倍数。
12.根据权利要求1所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,基于待判定点垂直于X轴,向Y轴的上方做射线;依据射线法的原理,如果该射线与多边形相交次数为0或者偶数时,点在内接多边形之外,相交次数为奇数时,点在内接多边形之内。
13.根据权利要求12所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,如果待判定点的X值,不在权利要求9里大的集合中各子集合X值最大值和最小值之间,则待判定点垂直于X轴做的射线与多边形相交次数为0,根据射线法的规则该点在多边形之外。
14.根据权利要求12所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,如果待判定点的X值,位于权利要求9里大的集合中各子集合X值最大值和最小值之间,则根据权利要求8里子集合的分布规律,在该X值对应的子集合里检索,根据权利要求5,子集合中包含了各个线上点的Y值,逐个和待判定点的Y值进行比较,并记录子集中线上点的Y值大于待判定点的Y值的次数,这个次数即为权利要求12中射线与多边形相交的次数,根据射线法的规则,如果这个次数为偶数,则待判定点在多边形外部,如果这个次数为奇数,则待判定点在多边形内部。
15.根据权利要求14所述的微分射线法判定点与封闭图形位置关系的方法,其特征在于,如果子集中线上点按权利要求6的方法,事先按Y值大小进行顺序排列,那么在权利要求14中判断子集内部线上点和待判定点的Y值,可加快比较速度;如果子集中线上点同时还按权利要求7的方法,由连续性数组来实现,那么子集中线上点的Y值就构成了连续性的顺序数组,可以用二分法来查找,更进一步加快查找速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810740596.7A CN109582745A (zh) | 2018-07-07 | 2018-07-07 | 微分射线法判定点与封闭图形位置关系的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810740596.7A CN109582745A (zh) | 2018-07-07 | 2018-07-07 | 微分射线法判定点与封闭图形位置关系的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109582745A true CN109582745A (zh) | 2019-04-05 |
Family
ID=65919575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810740596.7A Pending CN109582745A (zh) | 2018-07-07 | 2018-07-07 | 微分射线法判定点与封闭图形位置关系的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582745A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493724A (zh) * | 2019-08-22 | 2019-11-22 | 北京云中融信网络科技有限公司 | 位置监控方法、装置、服务器和计算机可读存储介质 |
CN110874102A (zh) * | 2020-01-16 | 2020-03-10 | 天津联汇智造科技有限公司 | 一种移动机器人虚拟安全防护区域保护***以及方法 |
CN111405473A (zh) * | 2020-03-10 | 2020-07-10 | 南京智鹤电子科技有限公司 | 一种线路偏离检测方法、装置及电子设备 |
CN112819986A (zh) * | 2021-02-03 | 2021-05-18 | 广东共德信息科技有限公司 | 一种考勤***和方法 |
-
2018
- 2018-07-07 CN CN201810740596.7A patent/CN109582745A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493724A (zh) * | 2019-08-22 | 2019-11-22 | 北京云中融信网络科技有限公司 | 位置监控方法、装置、服务器和计算机可读存储介质 |
CN110874102A (zh) * | 2020-01-16 | 2020-03-10 | 天津联汇智造科技有限公司 | 一种移动机器人虚拟安全防护区域保护***以及方法 |
CN111405473A (zh) * | 2020-03-10 | 2020-07-10 | 南京智鹤电子科技有限公司 | 一种线路偏离检测方法、装置及电子设备 |
CN111405473B (zh) * | 2020-03-10 | 2021-10-08 | 南京智鹤电子科技有限公司 | 一种线路偏离检测方法、装置及电子设备 |
CN112819986A (zh) * | 2021-02-03 | 2021-05-18 | 广东共德信息科技有限公司 | 一种考勤***和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582745A (zh) | 微分射线法判定点与封闭图形位置关系的方法 | |
US8874375B2 (en) | Digital map projection | |
KR102005343B1 (ko) | 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체 | |
CN103995861A (zh) | 一种基于空间关联的分布式数据装置、方法及*** | |
JP2004164596A (ja) | 2分木を巡回する方法およびシステム | |
CN105469445B (zh) | 一种步长可变地图生成方法 | |
CN110110021A (zh) | 一种高精度局部地图间的坐标转换方法、终端和存储介质 | |
CN114373111A (zh) | 一种基于孪生数据驱动的融合方法及引擎*** | |
US20100086208A1 (en) | Almost rectangular triangulations | |
Hou et al. | Path planning for mobile robots based on improved A* algorithm | |
US9383922B2 (en) | Keyboard-based navigation of a user interface | |
CN109859287A (zh) | 一种自动生成矢量扇形的方法 | |
CN116433794B (zh) | 一种cae软件中三维模型的处理方法及*** | |
Glasgow | A formalism for model-based spatial planning | |
CN115422196A (zh) | 一种矢量数据拓扑关系检查方法 | |
CN116188565A (zh) | 位置区域检测方法、装置、设备、存储介质和程序产品 | |
CN109816783B (zh) | 一种坐标扩散实现三维建模的测绘方法 | |
CN106909661A (zh) | 一种拓扑图生成方法及装置 | |
Zhao et al. | Fast k-nearest neighbor on a navigation mesh | |
Zhang et al. | A robot navigation system in complex terrain based on statistical features of point clouds | |
CN105139435A (zh) | 一种处理多边形多重包含关系的边界一笔画方法 | |
CN111737894B (zh) | 一种三角面网格划分有限元粒子模拟的粒子快速定位方法 | |
CN117033675B (zh) | 基于城市实景模型的安全空间计算生成方法及装置 | |
CN118053052B (zh) | 一种无监督的高精矢量地图元素异常检测方法 | |
TWI806237B (zh) | 機器人系統及機器人控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190405 |
|
WD01 | Invention patent application deemed withdrawn after publication |