一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种带弧复杂多边形快速合并的方法与流程

2023-02-19 07:28:11 来源:中国专利 TAG:

1.本发明涉及地理信息技术领域,尤其是涉及一种带弧复杂多边形快速合并的方法。


背景技术:

2.空间地理数据是指与地理位置相关的或包含地理信息的数据。在地理信息领域,用矢量数据(坐标和其他数据组合的数据结构)抽象表达真实世界中的点、线、面状地理要素。
3.地理空间分析的基础是地理几何图形间的运算,运算的方法直接影响分析的结果及效率,传统多边形合并算法仅支持普通多边形相交情形的合并,对有重叠特别是内部重叠的情况并不能很好的支持,对带有弧的多边形的支持也有限。
4.因此需在现有的基础上提供一种带弧复杂多边形快速合并的方法,支持对带弧及任意复杂多边形间的合并的实现与合并效率提升。


技术实现要素:

5.本发明的目的在于克服现有技术的缺陷,提供一种带弧复杂多边形快速合并的方法,通过对进出点的标记,以实现多边形合并的完整性和准确性。
6.为实现上述目的,本发明提出如下技术方案:一种带弧复杂多边形快速合并的方法,其包括如下步骤:
7.s1,获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
8.s2,在第一多边形的点集中寻找在第二多边形外部点a或寻找第一多边形所有线段的中点或弧的中点在第二多边形外部点a,若找到点a则进行s5,若找不到则进行s3;
9.s3,若第一多边形不带弧,则以第二多边形作为合并结果,若第一多边形带弧,则在第二多边形内以s2的步骤找点a,若找到点a则进行s5,若找不到进行s4;
10.s4,若第二多边形不带弧,则以第一多边形作为合并结果,若第二多边形带弧,则循环第二多边形中的弧段r以及第一多边形中所有直线线段l,若r与l相交且有两个交点,取这个r在这两个交点中间的点作为点a,则进行s5;若找不到r与l两个交点,即找不到点a,则以第一多边形作为合并结果;
11.s5,若点a在第二多边形内找到,则将第一多边形和第二多边形进行对调,确保点a在第一多边形内,同时将第一多边形的所有点集进行重新排序,使得点a为第一多边形点集中的第一个;
12.s6,从点a开始顺时针遍历第一多边形中所有线段或弧段h,将h与第二多边形的所有线段或弧段相交,若有交点,则将此交点添加到第一多边形的点集中,若有多个交点,则按与h的起点距离从小到大排序添加,若有重叠点则剔除;
13.s7,添加交点时同时标注所有的进点、出点和中性点;
14.s8,顺时针循环第一多边形,遇到出点继续顺时针获取第一多边形的节点,遇到进点则进入第二多边形的顺时针获取节点,遇到中性点继续顺时针获取第一多边形或第二多边形的节点,最终完成多边形的合并。
15.优选地,在所述s6中,在添加点的同时,标记交点在第二多边形中的线段索引,若为弧则记录弧的信息。
16.优选地,在所述s6中,在交点小于2的情况下,第二多边形有一点在第一多边形里面,则第二多边形完全在第一多边形内,则以第一多边形作为合并结果;若第二多边形有一点在第一多边形外面,则第一多边形和第二多边形无法合并。
17.优选地,在所述s7中,所述中性点为除了进点和出点还在第二多边形内或边上的点。
18.优选地,在所述s8中,若有多个出点,则回到一个出点后,则继续从下一个出点开始循环执行,循环完第一多边形上的所有节点后即完成合并。
19.优选地,构建出来的多边形节点的方向为顺时针,则多边形合并为外环,构建出来的多边形节点的方向为逆时针,则多边形合并为内环。
20.本发明的有益效果是:
21.1、本发明的带弧复杂多边形快速合并的方法,通过对进出点和中性点的标记,实现了合并的完整性和正确性。
22.2、本发明的带弧复杂多边形快速合并的方法,对交点的标注和弧段的信息标注,加快了后期构建多边形的速度。
具体实施方式
23.下面对本发明实施例的技术方案进行清楚、完整的描述。
24.本发明所揭示带弧复杂多边形快速合并的方法,下面通过六个实施例对本技术方案进行详细的说明。
25.实施例一
26.1、获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
27.2、找到第一多边形在第二多边形外部的点a,将第一多边形的所有点集进行重新排序,使得点a为第一多边形点集中的第一个;
28.3、从点a开始顺时针遍历第一多边形中所有线段或弧段h,将h与第二多边形的所有线段或弧段相交,将交点按照与h的起点距离从小到大排序添加至第一多边形的点集中;
29.4、添加交点的同时标注所有近点、出点和中性点;
30.5、顺时针循环第一多边形,遇到出点继续顺时针获取第一多边形的节点,遇到进点则进入第二多边形顺时针或逆时针获取节点,遇到中性点继续顺时针获取第一多边形和第二多边形的节点。将所有的出点都经过遍历完成两个多边形的合并。
31.实施例二、
32.1、获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
33.2、找不到第一多边形在第二多边形外部的点a,第一多边形不带弧,则说明第一多
边形完全在第二多边形内,以第二多边形作为合并结果。
34.实施例三、
35.1、获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
36.2、找不到第一多边形在第二多边形外部的点a,第一多边形带弧,在第二多边形找到a,将第一多边形和第二多边形进行对调,同时将新的第一多边形的所有点集重新排序,使得点a在新的第一多边形中的第一个;
37.3、从点a开始顺时针遍历第一多边形中所有线段或弧段h,将h与第二多边形的所有线段或弧段相交,将交点按照与h的起点距离从小到大排序添加至第一多边形的点集中;
38.4、添加交点的同时标注所有近点、出点和中性点;
39.5、顺时针循环第一多边形,遇到出点继续顺时针获取第一多边形的节点,遇到进点则进入第二多边形顺时针或逆时针获取节点,遇到中性点继续顺时针获取第一多边形和第二多边形的节点。将所有的出点都经过遍历完成两个多边形的合并。
40.实施例四、
41.1、获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
42.2、找不到第一多边形在第二多边形外部的点a,第一多边形带弧,在第二多边形内找不到a,且第二多边形不带弧,则说明第二多边形完全在第一多边形内,以第一多边形作为合并结果。
43.实施例五、
44.1、获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
45.2、找不到第一多边形在第二多边形外部及第二多边形在第一多边形外部的点a,第一多边形和第二多边形都带弧,则循环第二多边形中的弧段r以及第一多边形所有直线线段l,r与l相交且有两个交点,取弧段r在这两个交点中间的点作为点a;
46.3、若点a在第一多边形中找到,则对第一多边形的所有点集进行重新排序,使得点a在第一多边形中的第一个;若点a在第二多边形中找到,将第一多边形和第二多边形进行对调,同时将新的第一多边形的所有点集重新排序,使得点a在新的第一多边形中的第一个;
47.4、从点a开始顺时针遍历第一多边形中所有线段或弧段h,将h与第二多边形的所有线段或弧段相交,将交点按照与h的起点距离从小到大排序添加至第一多边形的点集中;
48.5、添加交点的同时标注所有近点、出点和中性点;
49.6、顺时针循环第一多边形,遇到出点继续顺时针获取第一多边形的节点,遇到进点则进入第二多边形顺时针或逆时针获取节点,遇到中性点继续顺时针获取第一多边形和第二多边形的节点。将所有的出点都经过遍历完成两个多边形的合并。
50.实施例六、
51.1、获取第一多边形和第二多边形的点集为顺时针排序,若为逆时针则修改为顺时针;
52.2、找不到第一多边形在第二多边形外部及第二多边形在第一多边形外部的点a,
第一多边形和第二多边形都带弧,则循环第二多边形中的弧段r以及第一多边形所有直线线段l,找不到r与l两个交点,即找不到点a,则说明第二多边形完全在第一锁边形内或完全重叠,以第一多边形作为合并结果。
53.进一步地,在需要循环第一多边形所有的直线线段l和第二多边形中的弧段r时,需要两个的交点进行进一步地分析,在交点数小于2的情况下,第二多边形有一点在第一多边形里面,说明第二多边完全在第一多边形里面,则以第一多边形作为合并结果;第二多边形有一点在第一多边形的外面,说明不相交或只有一个交点无法合并。
54.综上,通过六个不同的实施例对本发明的技术方案进行了详细的阐述,实现了不同的两个多边形的合并,降低了特殊多边形边间的合并算法的复杂度。
55.本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献