CN109582745A - 微分射线法判定点与封闭图形位置关系的方法 - Google Patents

微分射线法判定点与封闭图形位置关系的方法 Download PDF

Info

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
Application number
CN201810740596.7A
Other languages
English (en)
Inventor
高静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201810740596.7A priority Critical patent/CN109582745A/zh
Publication of CN109582745A publication Critical patent/CN109582745A/zh
Pending legal-status Critical Current

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值就构成了连续性的顺序数组,可以用二分法来查找,更进一步加快查找速度。
CN201810740596.7A 2018-07-07 2018-07-07 微分射线法判定点与封闭图形位置关系的方法 Pending CN109582745A (zh)

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)

* Cited by examiner, † Cited by third party
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 广东共德信息科技有限公司 一种考勤***和方法

Cited By (5)

* Cited by examiner, † Cited by third party
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