CN104143214A - 一种电子地图多边形三角剖分方法与装置 - Google Patents

一种电子地图多边形三角剖分方法与装置 Download PDF

Info

Publication number
CN104143214A
CN104143214A CN201310164769.2A CN201310164769A CN104143214A CN 104143214 A CN104143214 A CN 104143214A CN 201310164769 A CN201310164769 A CN 201310164769A CN 104143214 A CN104143214 A CN 104143214A
Authority
CN
China
Prior art keywords
polygon
polygonal
angle
triangle
ear
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
CN201310164769.2A
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.)
Navinfo Co Ltd
Original Assignee
Navinfo Co Ltd
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 Navinfo Co Ltd filed Critical Navinfo Co Ltd
Priority to CN201310164769.2A priority Critical patent/CN104143214A/zh
Publication of CN104143214A publication Critical patent/CN104143214A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及电子地图多边形三角剖分方法与装置,其中,电子地图多边形三角剖分方法包括:步骤1:经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;步骤2:查找多边形中小于180度的内角中的最小角;步骤3:根据最小角的顶点以及最小角的顶点的相邻的多边形的顶点构成三角形;步骤4:根据多边形的其他顶点是否存在于三角形内判断三角形是否为多边形的耳,如果三角形为多边形的耳,进行步骤5,如果三角形不是多边形的耳,进行步骤7;步骤5:将耳从多边形中切割并保存;步骤6:判断剩余多边形的边数是否大于3,如果是则返回步骤2,如果不是则生成三角网;步骤7:在多边形中的其他内角中获得最小角,返回步骤3。

Description

一种电子地图多边形三角剖分方法与装置
技术领域
本发明涉及数字制图技术领域,尤其涉及一种电子地图多边形三角剖分方法与装置。
背景技术
对电子地图的绘制一般是对导航电子地图中建筑、道路、河流、海洋、岛屿等多边形要素进行三角剖分,目前的三角剖分主要归纳为以下几种方法:
方法一:人工切割。
方法二:Kong切耳剖分,每次从多边形中切割出一个耳,直到多边形被切割成三角形为止。
方法一的缺点:
a)效率低,耗费大量人力资源,无法适应快速编译;
b)剖分结果不稳定;
c)容易产生人为错误;
方法二的缺点:
a)三角剖分结果不稳定——同一个多边形,如果输入顶点次序发生变化,三角剖分结果不一样;
b)产生大量狭长三角形,影响电子导航仪绘制速度与效果;
发明内容
为了解决上述技术问题,本发明提供一种电子地图多边形三角剖分方法与装置,提高导航电子地图数据生产的效率与质量。
为了达到上述目的,本发明采用的技术方案是:一种电子地图多边形三角剖分方法,包括以下步骤:
步骤1:将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;
步骤2:查找所述多边形中小于180度的内角中的最小角;
步骤3:根据所述最小角的顶点以及所述最小角的顶点的相邻的所述多边形的顶点构成一三角形;
步骤4:根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是否为所述多边形的耳,
如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,进行步骤5,
如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳,进行步骤7;
步骤5:将所述耳从所述多边形中切割并保存;
步骤6:判断剩余多边形的边数是否大于3,如果是则返回步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
步骤7:在所述多边形中的其他小于180度的内角中获得最小角,返回步骤3。
进一步的,所述步骤2具体包括:
步骤21:计算所述多边形中所有内角的角度;
步骤22:将所述多边形中小于180度的内角按照角度大小依次排序;
步骤23:根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获得最小角。
进一步的,所述步骤5具体包括:
步骤51:将所述耳从所述多边形中切割并保存,获得剩余多边形;
步骤52:从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排序树;
步骤53:计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角的角度;
步骤54:将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角中、角度小于180度的内角***所述新的二叉排序树中。
进一步的,所述步骤7具体包括:
步骤71:按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用于中序周游索引的指针;
步骤72:按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最小角。
进一步的,所述步骤4具体包括:
步骤41:根据所述点集中的边缘的点的(x,y)坐标建立KDTree结构;
步骤42:根据所述三角形顶点的(x,y)坐标建立所述三角形的包围矩形;
步骤43:根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述包围矩形内,进一步判断存在于所述包围矩形内的顶点是否存在于所述三角形内,如果不是则所述三角形是所述多边形的耳,如果是则所述三角形不是所述多边形的耳。
进一步的,所述步骤43中,在所述多边形的其他顶点存在于所述包围矩形内时,还包括:
步骤430:将存在于所述包围矩形内的顶点与所述三角形的三个顶点连线获得三个子三角形;
判断所述三个子三角形的面积的和是否大于所述三角形的面积,如果是则存在与所述包围矩形内的顶点不在所述三角形内,所述三角形为多边形的耳,如果不是则存在与所述包围矩形内的顶点在所述三角形内,所述三角形不是多边形的耳。
进一步的,所述步骤42中,所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最大x坐标、最大y坐标形成。
本发明还提供一种电子地图多边形三角剖分装置,包括:
多边形生成模块,用于将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;
最小角查找模块,用于计算所述多边形的每一个内角的角度,并获得所述多边形中小于180度的内角中的最小角;
三角形生成模块,用于根据所述最小角的顶点、以及所述最小角的顶点的相邻的所述多边形的顶点构成一三角形;
耳判断模块,用于根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是否为所述多边形的耳,
如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳;
耳删除模块,用于在所述三角形为所述多边形的耳时,将所述耳从所述多边形中切割并保存;
剩余多边形边数判断模块,用于判断剩余多边形的边数是否大于3,如果是则返回所述步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
所述最小角查找模块还用于在所述三角形不是所述多边形的耳时,在所述多边形中的其他小于180度的内角中获得最小角。
进一步的,所述最小角查找模块包括:
角度计算单元,用于计算所述多边形中所有内角的角度;
排序单元,用于将所述多边形中小于180度的内角按照角度大小依次排序;
最小角查找单元,用于根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获得最小角。
并不要求左右子树非空
进一步的,所述耳删除模块包括:
耳删除单元,用于将所述耳从所述多边形中切割并保存,获得剩余多边形;
二叉排序树重构单元,用于从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排序树;
所述角度计算单元,还用于计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角的角度;
所述二叉排序树重构单元还用于将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角中、角度小于180度的内角***所述新的二叉排序树中。
进一步的,所述最小角查找模块还包括:
指针生成单元,用于按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用于中序周游索引的指针;
所述最小角查找单元还用于按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最小角。
进一步的,所述耳判断模块包括:
KDTree结构生成单元,用于根据所述点集中的边缘的点的(x,y)坐标建立KDTree结构;
包围矩形生成单元,用于根据所述三角形顶点的(x,y)坐标建立所述三角形的包围矩形;
耳判断单元,用于根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述包围矩形内,则使用判断存在于所述包围矩形内的顶点是否在所述三角形内,如果上述某个顶点存在于所述三角形内,则所述三角形不是所述多边形的耳。
进一步的,所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最大x坐标、最大y坐标形成。
本发明的有益效果是:本专利使用自动化的方法,对导航电子地图对导航电子地图中建筑、道路、河流、海洋、岛屿等多边形要素进行三角剖分,提高导航电子地图数据生产的效率与质量,更好的满足日益广泛的社会需求。
附图说明
图1表示经过预处理后的点集的边缘的点进行连线获得的多边形的示意图;
图2表示去掉一个耳后的剩余多边形的示意图;
图3表示三角网示意图;
图4表示二叉排序树结构示意图;
图5表示KDTree结构示意图;
图6表示本发明一具体实施例中电子地图多边形三角剖分方法流程图。
具体实施方式
以下结合附图对本发明的结构和原理进行详细说明,所举实施例仅用于解释本发明,并非以此限定本发明的保护范围。
如图1、图2、图3所示,本实施例提供一种电子地图多边形三角剖分方法,包括以下步骤:
步骤1:将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形,如图1所示;
步骤2:查找所述多边形中小于180度的内角中的最小角;
步骤3:根据所述最小角的顶点以及所述最小角的顶点的相邻的所述多边形的顶点构成一三角形;
步骤4:根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是否为所述多边形的耳,
如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,进行步骤5,
如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳,进行步骤7;
步骤5:将所述耳从所述多边形中切割并保存;
步骤6:判断剩余多边形的边数是否大于3,如果是则返回步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
步骤7:在所述多边形中的其他小于180度的内角中获得最小角,返回步骤3。
本实施例电子地图多边形三角剖分方法,对导航电子地图对导航电子地图中建筑、道路、河流、海洋、岛屿等多边形要素进行三角剖分,降低电子地图生产成本,消除人为因素导致的错误;并且达到最小角最大,获得的三角剖分结果稳定性高,不会由于输入顶点的次序不同而影响三角网的形状。
如图1所示,首先获得经过预处理后的点集,将位于点集的边缘的点进行连线获得一由点P1、P2、P3、…P13构成的多边形。其中,点集中的点的位置信息,即三维坐标均不相同,且点P1、P2、P3、…P13之间的连线没有任何两条线相交,如果点P1、P2、P3、…P13之间的连线存在相交的线,则三角剖分无法进行。
本实施例中采用二叉排序树结构获得多边形的最小角,所述步骤2具体包括:
步骤21:计算所述多边形中所有内角的角度;
步骤22:将所述多边形中小于180度的内角按照角度大小依次排序;
步骤23:根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获得最小角。
二叉排序树(Binary Sort Tree)又称二叉查找树。它或者是一棵空树;或者是具有下列性质的二叉树:
a)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
b)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
c)左、右子树也分别为二叉排序树。中序周游二叉排序树,能够得到排序的节点。
为了快速的找到最小的耳,将剩余多边形的所有内角小于180度的顶点,按角度大小存放到二叉排序树中,通过***、删除操作,以最小的代价获得按照角度大小排序的顶点。
如果多边形中小于180度的内角的大小分别是:30度、40度、50度、60度、80度、100度、120度,选择中间值60度作为二叉排序树的根节点,然后按照二叉排序树的规则将其余角度***二叉排序树中,获得完整的二叉排序树结构,如图4所示。
本实施例中,所述步骤5具体包括:
步骤51:将所述耳从所述多边形中切割并保存,获得剩余多边形;
步骤52:从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排序树;
步骤53:计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角的角度;
步骤54:将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角中、角度小于180度的内角***所述新的二叉排序树中。
如图2所示,去掉P1点后的得到的剩余多边形中,内角P13、P2的角度发生了改变,则需要将原来二叉排序树结构中的P1的内角30去掉,由于在多边形中内角P13、P2的角度大于180度,所以不存在于图4所示的二叉排序树结构中,但是剩余多边形中,内角P13的角度明显小于180度,则需要***到二叉排序树结构中,从而获得新的二叉排序树结构。
需要指出的是,二叉排序树的***、删除的方法采用现有技术中的方法即可。
为了快速周游二叉树,额外添加用于建立双链中序周游索引的指针,提高周游二叉排序树的效率,从而能以线性时间寻找到全局最小的耳。
所述步骤7具体包括:
步骤71:按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用于中序周游索引的指针;
步骤72:按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最小角。
图4中的虚线所示的即为指针,本实施例中的指针是从小到大的方向,当30度的内角不是耳时,则顺着指针方向,角度为40度的内角即为其他小于180度的内角中的最小角,方便快捷。
KDTree(K-Dimensional树的简称),是一种分割K维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。在本专利中,用于范围搜索。
为了判断顶点P1是不是耳,那么需要判断△(P1,P2,P13)内部是否有其他顶点;判断一个点是否在三角形内,计算量较大,如果对所有顶点一一判断,速度很慢;先获得△(P1,P2,P13)的包围矩形Bounding Box[P1,P2],如果顶点(例如P3)在Bounding Box[P1,P2]外,那么该顶点显然不在△(P1,P2,P13)内;同时如果有很多顶点的话,判断是否在Bounding Box[P1,P2]内部,也是一个很耗时的操作,这时我们使用KDTree用来加速范围搜索。
所述步骤4具体包括:
步骤41:根据所述点集中的边缘的点的(x,y)坐标建立KDTree结构;
步骤42:根据所述三角形顶点的(x,y)坐标建立所述三角形的包围矩形;
步骤43:根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述包围矩形内,进一步判断存在于所述包围矩形内的顶点是否存在于所述三角形内,如果不是则所述三角形是所述多边形的耳,如果是则所述三角形不是所述多边形的耳。
所述步骤43中,在所述多边形的其他顶点存在于所述包围矩形内时,还包括:
步骤430:将存在于所述包围矩形内的顶点与所述三角形的三个顶点连线获得三个子三角形;
判断所述三个子三角形的面积的和是否大于所述三角形的面积,如果是则存在与所述包围矩形内的顶点不在所述三角形内,所述三角形为多边形的耳,如果不是则存在与所述包围矩形内的顶点在所述三角形内,所述三角形不是多边形的耳。
所述步骤42中,所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最大x坐标、最大y坐标形成。
本实施例中,还可以采用其他方法来判断存在于所述包围矩形内的顶点是否存在于所述三角形内,并不限于上述的通过三角形面积进行判断的方法。
本实施例中,通过利用KDTree结构进行范围搜索,所述三角形的包围矩形内存在顶点时,再进行判断该顶点是否存在于所述三角形内,而不必将每一个除所述三角形的顶点外的其他顶点一一进行判断,大大减小了计算量,提高三角剖分的效率。
如图5所示,根据点P1、P2、…P13的(X,Y)坐标建立KDTree结构,首先查找△(P1,P2,P13)的包围矩形Bounding Box[P1,P2](图5中所示虚线表示的矩形)内是否有其他对变形的顶点。
采用点P10的X坐标作为分隔平面,确定X坐标小于7的点在左子空间,X坐标大于7的点在右子空间,图5中明显可以看出,△(P1,P2,P13)的包围矩形Bounding Box[P1,P2]在左子空间,而位于右子空间的点P4、P5、P6、P7、P8、P9则不必验证;然后依照上述规则进一步获得,点P11、点P12也明显不在Bounding Box[P1,P2]内,然后只需判断点P3是否在矩形BoundingBox[P1,P2]内即可,由图5所示,点P3并不在包围矩形Bounding Box[P1,P2]内,所以也必然不在△(P1,P2,P13)内,所以角P1为耳。
如图6所示,以下具体介绍本发明电子地图多边形三角剖分方法的过程。
步骤1:初始化多边形,即将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形,包括如下子步骤:
a)剔除重复的点;
b)检查多边形的点的连线是否自相交,如果自相交,算法结束。
步骤2:初始化,包括以下子步骤:
步骤2.1:建立BSTree;
a)计算多边形每个内角角度;
b)内角小于180度的顶点,按内角大小排序;
c)创建初始状态平衡的BSTree;
步骤2.2:建立KDTree;
步骤2.3:寻找最小的耳;
a)遍历BSTree的中序周游索引,测试P(i)是否是耳;
b)计算△P(i-1)P(i)P(i+1)的Bound Box;
c)使用KDTree选取Bound Box中的点;
d)测试△P(i-1)P(i)P(i+1)内是否存在点;
e)△P(i-1)P(i)P(i+1)中存在点,转入a)测试下一个顶点;
f)进入步骤2.4,切割最小的耳;
需要指出的是,一般来说最小的内角形成的三角形是耳,因此使用中序周游索引几乎是线性查找。
步骤2.4:切割最小的耳;
a)切除耳P(i-1)P(i)P(i+1);
b)从BSTree中删除顶点P(i),P(i-1),P(i+1);
c)计算剩余多边形中顶点P(i-1)的内角角度,如果小于180***BSTree;
d)计算剩余多边形中顶点P(i+1)的内角角度,如果小于180***BSTree;
e)测试剩余多边形的顶点数;
f)剩余多边形顶点数大于3,继续剖分,转入步骤2.3
g)剩余多边形顶点数等于3,剖分完毕。
步骤2.5:生成三角网。
本发明还提供一种电子地图多边形三角剖分装置,包括:
多边形生成模块,用于将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;
最小角查找模块,用于计算所述多边形的每一个内角的角度,并获得所述多边形中小于180度的内角中的最小角;
三角形生成模块,用于根据所述最小角的顶点、以及所述最小角的顶点的相邻的所述多边形的顶点构成一三角形;
耳判断模块,用于根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是否为所述多边形的耳,
如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳;
耳删除模块,用于在所述三角形为所述多边形的耳时,将所述耳从所述多边形中切割并保存;
剩余多边形边数判断模块,用于判断剩余多边形的边数是否大于3,如果是则返回所述步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
所述最小角查找模块还用于在所述三角形不是所述多边形的耳时,在所述多边形中的其他小于180度的内角中获得最小角。
所述最小角查找模块包括:
角度计算单元,用于计算所述多边形中所有内角的角度;
排序单元,用于将所述多边形中小于180度的内角按照角度大小依次排序;
最小角查找单元,用于根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获得最小角。
所述二叉排序树结构的左子树和右子树均不为空。
所述耳删除模块包括:
耳删除单元,用于将所述耳从所述多边形中切割并保存,获得剩余多边形;
二叉排序树重构单元,用于从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排序树;
所述角度计算单元,还用于计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角的角度;
所述二叉排序树重构单元还用于将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角中、角度小于180度的内角***所述新的二叉排序树中。
所述最小角查找模块还包括:
指针生成单元,用于按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用于中序周游索引的指针;
所述最小角查找单元还用于按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最小角。
所述耳判断模块包括:
KDTree结构生成单元,用于根据所述点集中的边缘的点的(x,y)坐标建立KDTree结构;
包围矩形生成单元,用于根据所述三角形顶点的(x,y)坐标建立所述三角形的包围矩形;
耳判断单元,用于根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述包围矩形内,则所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳。
所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最大x坐标、最大y坐标形成。
需要说明的是:多边形的两个点之间的连线满足以下两个条件,则该连线为多边形的对角线:
a)在多边形内;
b)没有与其他边相交;
例如图3中:
L(P3,P1)在多边形外,不是对角线;
L(P3,P8)与L(P6,P7)相交,不是对角线;
L(P3,P6)、L(P3,P7)、L(P4,P6)等满足上述条件,是对角线。
若P(i-1),P(i),P(i+1)是多边形的连续的顶点,且P(i-1),P(i+1)是多边形的对角线,那么P(i-1),P(i),P(i+1)是多边形的一个耳,P(i)是耳尖。例如图3中:
P4,P5,P6是连续顶点,并且L(P4,P6)是多边形的对角线,因此P5是耳尖。
切去一个“耳”之后的多边形称为剩余多边形,例如图3、图4中:
多边形P1,P2,P3,P4,...,P13切去P1之后,P2,P3,P4...P13称为剩余多边形。
以上所述为本发明较佳实施例,应当指出,对于本领域技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明保护范围。

Claims (14)

1.一种电子地图多边形三角剖分方法,其特征在于,包括以下步骤:
步骤1:将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;
步骤2:查找所述多边形中小于180度的内角中的最小角;
步骤3:根据所述最小角的顶点以及所述最小角的顶点的相邻的所述多边形的顶点构成一三角形;
步骤4:根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是否为所述多边形的耳,
如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,进行步骤5,
如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳,进行步骤7;
步骤5:将所述耳从所述多边形中切割并保存;
步骤6:判断剩余多边形的边数是否大于3,如果是则返回步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
步骤7:在所述多边形中的其他小于180度的内角中获得最小角,返回步骤3。
2.根据权利要求1所述的一种电子地图多边形三角剖分方法,其特征在于,所述步骤2具体包括:
步骤21:计算所述多边形中所有内角的角度;
步骤22:将所述多边形中小于180度的内角按照角度大小依次排序;
步骤23:根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获得最小角。
3.根据权利要求2所述的一种电子地图多边形三角剖分方法,其特征在于,所述步骤5具体包括:
步骤51:将所述耳从所述多边形中切割并保存,获得剩余多边形;
步骤52:从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排序树;
步骤53:计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角的角度;
步骤54:将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角中、角度小于180度的内角***所述新的二叉排序树中。
4.根据权利要求2所述的一种电子地图多边形三角剖分方法,其特征在于,所述步骤7具体包括:
步骤71:按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用于中序周游索引的指针;
步骤72:按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最小角。
5.根据权利要求1所述的一种电子地图多边形三角剖分方法,其特征在于,所述步骤4具体包括:
步骤41:根据所述点集中的边缘的点的(x,y)坐标建立KDTree结构;
步骤42:根据所述三角形顶点的(x,y)坐标建立所述三角形的包围矩形;
步骤43:根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述包围矩形内,进一步判断存在于所述包围矩形内的顶点是否存在于所述三角形内,如果不是则所述三角形是所述多边形的耳,如果是则所述三角形不是所述多边形的耳。
6.根据权利要求5所述的一种电子地图多边形三角剖分方法,其特征在于,所述步骤43中,在所述多边形的其他顶点存在于所述包围矩形内时,还包括:
步骤430:将存在于所述包围矩形内的顶点与所述三角形的三个顶点连线获得三个子三角形;
判断所述三个子三角形的面积的和是否大于所述三角形的面积,如果是则存在与所述包围矩形内的顶点不在所述三角形内,所述三角形为多边形的耳,如果不是则存在与所述包围矩形内的顶点在所述三角形内,所述三角形不是多边形的耳。
7.根据权利要求5所述的一种电子地图多边形三角剖分方法,其特征在于,所述步骤42中,所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最大x坐标、最大y坐标形成。
8.一种电子地图多边形三角剖分装置,其特征在于,包括:
多边形生成模块,用于将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;
最小角查找模块,用于计算所述多边形的每一个内角的角度,并获得所述多边形中小于180度的内角中的最小角;
三角形生成模块,用于根据所述最小角的顶点、以及所述最小角的顶点的相邻的所述多边形的顶点构成一三角形;
耳判断模块,用于根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是否为所述多边形的耳,
如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形的耳;
耳删除模块,用于在所述三角形为所述多边形的耳时,将所述耳从所述多边形中切割并保存;
剩余多边形边数判断模块,用于判断剩余多边形的边数是否大于3,如果是则返回所述步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
所述最小角查找模块还用于在所述三角形不是所述多边形的耳时,在所述多边形中的其他小于180度的内角中获得最小角。
9.根据权利要求8所述的一种电子地图多边形三角剖分装置,其特征在于:所述最小角查找模块包括:
角度计算单元,用于计算所述多边形中所有内角的角度;
排序单元,用于将所述多边形中小于180度的内角按照角度大小依次排序;
最小角查找单元,用于根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获得最小角。
10.根据权利要求9所述的一种电子地图多边形三角剖分装置,其特征在于:所述二叉排序树结构的左子树和右子树均不为空。
11.根据权利要求9所述的一种电子地图多边形三角剖分装置,其特征在于:所述耳删除模块包括:
耳删除单元,用于将所述耳从所述多边形中切割并保存,获得剩余多边形;
二叉排序树重构单元,用于从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排序树;
所述角度计算单元,还用于计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角的角度;
所述二叉排序树重构单元还用于将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角中、角度小于180度的内角***所述新的二叉排序树中。
12.根据权利要求9所述的一种电子地图多边形三角剖分装置,其特征在于:所述最小角查找模块还包括:
指针生成单元,用于按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用于中序周游索引的指针;
所述最小角查找单元还用于按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最小角。
13.根据权利要求8所述的一种电子地图多边形三角剖分装置,其特征在于:所述耳判断模块包括:
KDTree结构生成单元,用于根据所述点集中的边缘的点的(x,y)坐标建立KDTree结构;
包围矩形生成单元,用于根据所述三角形顶点的(x,y)坐标建立所述三角形的包围矩形;
耳判断单元,用于根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形的耳,
如果所述多边形的其他顶点存在于所述包围矩形内,则判断存在于所述包围矩形内的顶点是否在所述三角形内,如果存在于所述三角形内,则所述三角形不是所述多边形的耳。
14.根据权利要求8所述的一种电子地图多边形三角剖分装置,其特征在于:所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最大x坐标、最大y坐标形成。
CN201310164769.2A 2013-05-07 2013-05-07 一种电子地图多边形三角剖分方法与装置 Pending CN104143214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310164769.2A CN104143214A (zh) 2013-05-07 2013-05-07 一种电子地图多边形三角剖分方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310164769.2A CN104143214A (zh) 2013-05-07 2013-05-07 一种电子地图多边形三角剖分方法与装置

Publications (1)

Publication Number Publication Date
CN104143214A true CN104143214A (zh) 2014-11-12

Family

ID=51852382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310164769.2A Pending CN104143214A (zh) 2013-05-07 2013-05-07 一种电子地图多边形三角剖分方法与装置

Country Status (1)

Country Link
CN (1) CN104143214A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105590333A (zh) * 2015-11-28 2016-05-18 中国石油大学(华东) 一种基于三角形区域方程判断点与面拓扑关系的方法
CN106157369A (zh) * 2016-07-22 2016-11-23 中国石油集团川庆钻探工程有限公司地球物理勘探公司 基于稀疏构造解释数据的地质曲面三角剖分方法
CN106296756A (zh) * 2015-06-04 2017-01-04 高德软件有限公司 一种多边形的压缩方法及装置
CN107622530A (zh) * 2017-10-10 2018-01-23 中国地质大学(武汉) 一种高效鲁棒的三角网切割方法
CN110727755A (zh) * 2019-10-14 2020-01-24 武汉汉达瑞科技有限公司 一种多边形直角化方法、电子设备及存储介质
CN111815777A (zh) * 2020-07-21 2020-10-23 武汉大势智慧科技有限公司 多面体和模型三角网的融合挤压方法及***

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DAVID EBERLY: "Triangulation by Ear Clipping", 《HTTP://WWW.GEOMETRICTOOLS.COM/》 *
罗小华: "Delaunay三角剖分算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
艾廷华等: "支持地图综合的面状目标约束Delaunay三角网剖分", 《武汉测绘科技大学学报》 *
薛峰 等: "复杂地形条件下虚拟城市街道生成方法", 《合肥工业大学学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106296756A (zh) * 2015-06-04 2017-01-04 高德软件有限公司 一种多边形的压缩方法及装置
CN105590333A (zh) * 2015-11-28 2016-05-18 中国石油大学(华东) 一种基于三角形区域方程判断点与面拓扑关系的方法
CN106157369A (zh) * 2016-07-22 2016-11-23 中国石油集团川庆钻探工程有限公司地球物理勘探公司 基于稀疏构造解释数据的地质曲面三角剖分方法
CN107622530A (zh) * 2017-10-10 2018-01-23 中国地质大学(武汉) 一种高效鲁棒的三角网切割方法
CN107622530B (zh) * 2017-10-10 2020-05-22 中国地质大学(武汉) 一种高效鲁棒的三角网切割方法
CN110727755A (zh) * 2019-10-14 2020-01-24 武汉汉达瑞科技有限公司 一种多边形直角化方法、电子设备及存储介质
CN110727755B (zh) * 2019-10-14 2022-02-08 武汉汉达瑞科技有限公司 一种地物形状规则化方法、电子设备及存储介质
CN111815777A (zh) * 2020-07-21 2020-10-23 武汉大势智慧科技有限公司 多面体和模型三角网的融合挤压方法及***
CN111815777B (zh) * 2020-07-21 2023-09-29 武汉大势智慧科技有限公司 多面体和模型三角网的融合挤压方法及***

Similar Documents

Publication Publication Date Title
CN104143214A (zh) 一种电子地图多边形三角剖分方法与装置
CN112699623B (zh) 基于非结构网格规则化重构技术的高精度热流计算方法
CN103400372B (zh) 一种基于Reeb图描述的三维拓扑信息提取方法
CN103258345A (zh) 一种基于地面激光雷达三维扫描的树木枝干参数提取方法
CN107170033A (zh) 基于激光雷达技术的智慧城市3d实景地图***
CN102496187B (zh) 一种基于三角形网格的追踪等值线至边界及断层的方法
CN104751505A (zh) 基于lod模型和四叉树层次结构的三维场景渲染算法
EP4116935A2 (en) High-definition map creation method and device, and electronic device
CN111090712A (zh) 一种数据处理方法、装置、设备及计算机存储介质
Merrick et al. Path simplification for metro map layout
CN107845144B (zh) 一种高效组织和切换OpenGL渲染状态的方法
CN109918658A (zh) 一种从文本中获取目标词汇的方法及***
CN109410290A (zh) 确定作业区域边界的方法和装置
CN103838907A (zh) 基于stl模型的曲面切割轨迹获得方法
WO2019019653A1 (zh) 对地形边界进行提取的设备和方法
CN115661374B (zh) 一种基于空间划分和模型体素化的快速检索方法
CN104317886A (zh) 断层约束下网格节点插值时近邻条件数据点的搜索选取方法
CN112150610A (zh) 一种基于标注尺寸的挡土墙建模方法及***
CN105468375A (zh) 一种面向面结构光点云数据的对应点搜索结构的构建方法
CN103500278B (zh) 基于最短路径算法的路径相似台风分析方法
CN108469263A (zh) 一种基于曲率进行形点优化的方法及***
CN106488401B (zh) 生成无缝相邻的地理围栏的方法及装置
CN105785919B (zh) 点云五轴无全局干涉刀轴矢量可行域计算方法
CN110490893A (zh) 一种快速欧式距离点云分割方法
CN106802958A (zh) Cad数据到gis数据的转换方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20141112

RJ01 Rejection of invention patent application after publication