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

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

【技术领域】
[0001] 本发明涉及数字制图【技术领域】,尤其涉及一种电子地图多边形三角剖分方法与装 置。

【背景技术】
[0002] 对电子地图的绘制一般是对导航电子地图中建筑、道路、河流、海洋、岛屿等多边 形要素进行三角剖分,目前的三角剖分主要归纳为以下几种方法:
[0003] 方法一:人工切割。
[0004] 方法二:Kong切耳剖分,每次从多边形中切割出一个耳,直到多边形被切割成三 角形为止。
[0005] 方法一的缺点:
[0006] a)效率低,耗费大量人力资源,无法适应快速编译;
[0007] b)剖分结果不稳定;
[0008] c)容易产生人为错误;
[0009] 方法二的缺点:
[0010] a)三角剖分结果不稳定--同一个多边形,如果输入顶点次序发生变化,三角剖 分结果不一样;
[0011] b)产生大量狭长三角形,影响电子导航仪绘制速度与效果;


【发明内容】

[0012] 为了解决上述技术问题,本发明提供一种电子地图多边形三角剖分方法与装置, 提高导航电子地图数据生产的效率与质量。
[0013] 为了达到上述目的,本发明采用的技术方案是:一种电子地图多边形三角剖分方 法,包括以下步骤:
[0014] 步骤1 :将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形;
[0015] 步骤2 :查找所述多边形中小于180度的内角中的最小角;
[0016] 步骤3 :根据所述最小角的顶点以及所述最小角的顶点的相邻的所述多边形的顶 点构成一三角形;
[0017] 步骤4 :根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是 否为所述多边形的耳,
[0018] 如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形 的耳,进行步骤5,
[0019] 如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形 的耳,进行步骤7;
[0020] 步骤5 :将所述耳从所述多边形中切割并保存;
[0021] 步骤6 :判断剩余多边形的边数是否大于3,如果是则返回步骤2,如果不是则将所 述剩余多边形与所述耳组合生成三角网;
[0022] 步骤7 :在所述多边形中的其他小于180度的内角中获得最小角,返回步骤3。
[0023] 进一步的,所述步骤2具体包括:
[0024] 步骤21 :计算所述多边形中所有内角的角度;
[0025] 步骤22 :将所述多边形中小于180度的内角按照角度大小依次排序;
[0026] 步骤23 :根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获 得最小角。
[0027] 进一步的,所述步骤5具体包括:
[0028] 步骤51 :将所述耳从所述多边形中切割并保存,获得剩余多边形;
[0029] 步骤52 :从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排 序树;
[0030] 步骤53 :计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内 角的角度;
[0031] 步骤54:将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角 中、角度小于180度的内角插入所述新的二叉排序树中。
[0032] 进一步的,所述步骤7具体包括:
[0033] 步骤71 :按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用 于中序周游索引的指针;
[0034] 步骤72 :按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最 小角。
[0035] 进一步的,所述步骤4具体包括:
[0036] 步骤41 :根据所述点集中的边缘的点的(X,y)坐标建立KDTree结构;
[0037] 步骤42 :根据所述三角形顶点的(X,y)坐标建立所述三角形的包围矩形;
[0038] 步骤43 :根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在 于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
[0039] 如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点 不存在于所述三角形内,则所述三角形为所述多边形的耳,
[0040] 如果所述多边形的其他顶点存在于所述包围矩形内,进一步判断存在于所述包围 矩形内的顶点是否存在于所述三角形内,如果不是则所述三角形是所述多边形的耳,如果 是则所述三角形不是所述多边形的耳。
[0041] 进一步的,所述步骤43中,在所述多边形的其他顶点存在于所述包围矩形内时, 还包括:
[0042] 步骤430 :将存在于所述包围矩形内的顶点与所述三角形的三个顶点连线获得三 个子三角形;
[0043] 判断所述三个子三角形的面积的和是否大于所述三角形的面积,如果是则存在与 所述包围矩形内的顶点不在所述三角形内,所述三角形为多边形的耳,如果不是则存在与 所述包围矩形内的顶点在所述三角形内,所述三角形不是多边形的耳。
[0044] 进一步的,所述步骤42中,所述包围矩形由所述三角形顶点中的最小X坐标、最小 y坐标、最大X坐标、最大y坐标形成。
[0045] 本发明还提供一种电子地图多边形三角剖分装置,包括:
[0046] 多边形生成模块,用于将经过预处理后的点集的边缘的点进行连线,形成没有相 交线的多边形;
[0047] 最小角查找模块,用于计算所述多边形的每一个内角的角度,并获得所述多边形 中小于180度的内角中的最小角;
[0048] 三角形生成模块,用于根据所述最小角的顶点、以及所述最小角的顶点的相邻的 所述多边形的顶点构成一三角形;
[0049] 耳判断模块,用于根据所述多边形的其他顶点是否存在于所述三角形内判断所述 三角形是否为所述多边形的耳,
[0050] 如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形 的耳,
[0051] 如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形 的耳;
[0052] 耳删除模块,用于在所述三角形为所述多边形的耳时,将所述耳从所述多边形中 切割并保存;
[0053] 剩余多边形边数判断模块,用于判断剩余多边形的边数是否大于3,如果是则返回 所述步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
[0054] 所述最小角查找模块还用于在所述三角形不是所述多边形的耳时,在所述多边形 中的其他小于180度的内角中获得最小角。
[0055] 进一步的,所述最小角查找模块包括:
[0056] 角度计算单元,用于计算所述多边形中所有内角的角度;
[0057] 排序单元,用于将所述多边形中小于180度的内角按照角度大小依次排序;
[0058] 最小角查找单元,用于根据所述多边形中小于180度的内角的角度生成二叉排序 树结构,并获得最小角。
[0059] 并不要求左右子树非空
[0060] 进一步的,所述耳删除模块包括:
[0061] 耳删除单元,用于将所述耳从所述多边形中切割并保存,获得剩余多边形;
[0062] 二叉排序树重构单元,用于从所述二叉排序树结构中删除所述三角形的三个顶 点,构成新的二叉排序树;
[0063] 所述角度计算单元,还用于计算与所述最小角相邻的两个顶点在所述剩余多边形 中形成的新的内角的角度;
[0064] 所述二叉排序树重构单元还用于将与所述最小角相邻的两个顶点在所述剩余多 边形中形成的新的内角中、角度小于180度的内角插入所述新的二叉排序树中。
[0065] 进一步的,所述最小角查找模块还包括:
[0066] 指针生成单元,用于按照所述二叉排序树中的数值的大小在所述二叉排序树结构 中建立用于中序周游索引的指针;
[0067] 所述最小角查找单元还用于按照所述指针的方向查找所述多边形中的其他小于 180度的内角中的最小角。
[0068] 进一步的,所述耳判断模块包括:
[0069] KDTree结构生成单元,用于根据所述点集中的边缘的点的(x,y)坐标建立KDTree 结构;
[0070] 包围矩形生成单元,用于根据所述三角形顶点的(X,y)坐标建立所述三角形的包 围矩形;
[0071] 耳判断单元,用于根据KDTree结构的范围查找算法判断所述多边形的其他顶点 是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
[0072] 如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点 不存在于所述三角形内,则所述三角形为所述多边形的耳,
[0073] 如果所述多边形的其他顶点存在于所述包围矩形内,则使用判断存在于所述包围 矩形内的顶点是否在所述三角形内,如果上述某个顶点存在于所述三角形内,则所述三角 形不是所述多边形的耳。
[0074] 进一步的,所述包围矩形由所述三角形顶点中的最小X坐标、最小y坐标、最大X 坐标、最大y坐标形成。
[0075] 本发明的有益效果是:本专利使用自动化的方法,对导航电子地图对导航电子地 图中建筑、道路、河流、海洋、岛屿等多边形要素进行三角剖分,提高导航电子地图数据生产 的效率与质量,更好的满足日益广泛的社会需求。

【专利附图】

【附图说明】
[0076] 图1表示经过预处理后的点集的边缘的点进行连线获得的多边形的示意图;
[0077] 图2表示去掉一个耳后的剩余多边形的示意图;
[0078] 图3表不二角网不意图;
[0079] 图4表示二叉排序树结构示意图;
[0080] 图5表示KDTree结构示意图;
[0081] 图6表示本发明一具体实施例中电子地图多边形三角剖分方法流程图。

【具体实施方式】
[0082] 以下结合附图对本发明的结构和原理进行详细说明,所举实施例仅用于解释本发 明,并非以此限定本发明的保护范围。
[0083] 如图1、图2、图3所示,本实施例提供一种电子地图多边形三角剖分方法,包括以 下步骤:
[0084] 步骤1 :将经过预处理后的点集的边缘的点进行连线,形成没有相交线的多边形, 如图1所示;
[0085] 步骤2 :查找所述多边形中小于180度的内角中的最小角;
[0086] 步骤3 :根据所述最小角的顶点以及所述最小角的顶点的相邻的所述多边形的顶 点构成一三角形;
[0087] 步骤4 :根据所述多边形的其他顶点是否存在于所述三角形内判断所述三角形是 否为所述多边形的耳,
[0088] 如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形 的耳,进行步骤5,
[0089] 如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形 的耳,进行步骤7;
[0090] 步骤5 :将所述耳从所述多边形中切割并保存;
[0091] 步骤6 :判断剩余多边形的边数是否大于3,如果是则返回步骤2,如果不是则将所 述剩余多边形与所述耳组合生成三角网;
[0092] 步骤7 :在所述多边形中的其他小于180度的内角中获得最小角,返回步骤3。
[0093] 本实施例电子地图多边形三角剖分方法,对导航电子地图对导航电子地图中建 筑、道路、河流、海洋、岛屿等多边形要素进行三角剖分,降低电子地图生产成本,消除人为 因素导致的错误;并且达到最小角最大,获得的三角剖分结果稳定性高,不会由于输入顶点 的次序不同而影响三角网的形状。
[0094] 如图1所示,首先获得经过预处理后的点集,将位于点集的边缘的点进行连线获 得一由点P1、P2、P3、…P13构成的多边形。其中,点集中的点的位置信息,即三维坐标均不 相同,且点PI、P2、P3、"·Ρ13之间的连线没有任何两条线相交,如果点PI、P2、P3、"·Ρ13 之间的连线存在相交的线,则三角剖分无法进行。
[0095] 本实施例中采用二叉排序树结构获得多边形的最小角,所述步骤2具体包括:
[0096] 步骤21 :计算所述多边形中所有内角的角度;
[0097] 步骤22 :将所述多边形中小于180度的内角按照角度大小依次排序;
[0098] 步骤23 :根据所述多边形中小于180度的内角的角度生成二叉排序树结构,并获 得最小角。
[0099] 二叉排序树(Binary Sort Tree)又称二叉查找树。它或者是一棵空树;或者是具 有下列性质的二叉树:
[0100] a)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
[0101] b)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
[0102] c)左、右子树也分别为二叉排序树。中序周游二叉排序树,能够得到排序的节点。
[0103] 为了快速的找到最小的耳,将剩余多边形的所有内角小于180度的顶点,按角度 大小存放到二叉排序树中,通过插入、删除操作,以最小的代价获得按照角度大小排序的顶 点。
[0104] 如果多边形中小于180度的内角的大小分别是:30度、40度、50度、60度、80度、 100度、120度,选择中间值60度作为二叉排序树的根节点,然后按照二叉排序树的规则将 其余角度插入二叉排序树中,获得完整的二叉排序树结构,如图4所示。
[0105] 本实施例中,所述步骤5具体包括:
[0106] 步骤51 :将所述耳从所述多边形中切割并保存,获得剩余多边形;
[0107] 步骤52 :从所述二叉排序树结构中删除所述三角形的三个顶点,构成新的二叉排 序树;
[0108] 步骤53 :计算与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内 角的角度;
[0109] 步骤54 :将与所述最小角相邻的两个顶点在所述剩余多边形中形成的新的内角 中、角度小于180度的内角插入所述新的二叉排序树中。
[0110] 如图2所示,去掉P1点后的得到的剩余多边形中,内角P13、P2的角度发生了改 变,则需要将原来二叉排序树结构中的P1的内角30去掉,由于在多边形中内角P13、P2的 角度大于180度,所以不存在于图4所示的二叉排序树结构中,但是剩余多边形中,内角P13 的角度明显小于180度,则需要插入到二叉排序树结构中,从而获得新的二叉排序树结构。 [0111] 需要指出的是,二叉排序树的插入、删除的方法采用现有技术中的方法即可。
[0112] 为了快速周游二叉树,额外添加用于建立双链中序周游索引的指针,提高周游二 叉排序树的效率,从而能以线性时间寻找到全局最小的耳。
[0113] 所述步骤7具体包括:
[0114] 步骤71 :按照所述二叉排序树中的数值的大小在所述二叉排序树结构中建立用 于中序周游索引的指针;
[0115] 步骤72 :按照所述指针的方向查找所述多边形中的其他小于180度的内角中的最 小角。
[0116] 图4中的虚线所示的即为指针,本实施例中的指针是从小到大的方向,当30度的 内角不是耳时,则顺着指针方向,角度为40度的内角即为其他小于180度的内角中的最小 角,方便快捷。
[0117] KDTree (K-Dimensional树的简称),是一种分割K维数据空间的数据结构。主要 应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。在本专利中,用于范围搜 索。
[0118] 为了判断顶点P1是不是耳,那么需要判断Λ (P1,P2,P13)内部是否有其他顶 点;判断一个点是否在三角形内,计算量较大,如果对所有顶点一一判断,速度很慢;先获 得Λ (P1,P2,P13)的包围矩形 Bounding Βοχ[Ρ1,Ρ2],如果顶点(例如 P3)在 Bounding Βοχ[Ρ1,Ρ2]外,那么该顶点显然不在Λ (P1,P2,P13)内;同时如果有很多顶点的话,判断是 否在Bounding Box[P1,P2]内部,也是一个很耗时的操作,这时我们使用KDTree用来加速 范围搜索。
[0119] 所述步骤4具体包括:
[0120] 步骤41 :根据所述点集中的边缘的点的(X,y)坐标建立KDTree结构;
[0121] 步骤42 :根据所述三角形顶点的(X,y)坐标建立所述三角形的包围矩形;
[0122] 步骤43 :根据KDTree结构的范围查找算法判断所述多边形的其他顶点是否存在 于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
[0123] 如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点 不存在于所述三角形内,则所述三角形为所述多边形的耳,
[0124] 如果所述多边形的其他顶点存在于所述包围矩形内,进一步判断存在于所述包围 矩形内的顶点是否存在于所述三角形内,如果不是则所述三角形是所述多边形的耳,如果 是则所述三角形不是所述多边形的耳。
[0125] 所述步骤43中,在所述多边形的其他顶点存在于所述包围矩形内时,还包括:
[0126] 步骤430 :将存在于所述包围矩形内的顶点与所述三角形的三个顶点连线获得三 个子三角形;
[0127] 判断所述三个子三角形的面积的和是否大于所述三角形的面积,如果是则存在与 所述包围矩形内的顶点不在所述三角形内,所述三角形为多边形的耳,如果不是则存在与 所述包围矩形内的顶点在所述三角形内,所述三角形不是多边形的耳。
[0128] 所述步骤42中,所述包围矩形由所述三角形顶点中的最小x坐标、最小y坐标、最 大X坐标、最大y坐标形成。
[0129] 本实施例中,还可以采用其他方法来判断存在于所述包围矩形内的顶点是否存在 于所述三角形内,并不限于上述的通过三角形面积进行判断的方法。
[0130] 本实施例中,通过利用KDTree结构进行范围搜索,所述三角形的包围矩形内存在 顶点时,再进行判断该顶点是否存在于所述三角形内,而不必将每一个除所述三角形的顶 点外的其他顶点一一进行判断,大大减小了计算量,提高三角剖分的效率。
[0131] 如图5所示,根据点P1、P2、...P13的(X,Y)坐标建立KDTree结构,首先查找 Λ (P1,P2,P13)的包围矩形Bounding Βοχ[Ρ1,Ρ2](图5中所示虚线表示的矩形)内是否 有其他对变形的顶点。
[0132] 采用点P10的X坐标作为分隔平面,确定X坐标小于7的点在左子空间,X坐 标大于7的点在右子空间,图5中明显可以看出,Λ (P1,P2,P13)的包围矩形Bounding Βοχ[Ρ1,Ρ2]在左子空间,而位于右子空间的点P4、P5、P6、P7、P8、P9则不必验证;然后依照 上述规则进一步获得,点P11、点P12也明显不在Bounding Βοχ[Ρ1,Ρ2]内,然后只需判断点 P3是否在矩形BoundingBox [Pl,P2]内即可,由图5所示,点P3并不在包围矩形Bounding Βοχ[Ρ1,Ρ2]内,所以也必然不在Λ (P1,P2,P13)内,所以角P1为耳。
[0133] 如图6所示,以下具体介绍本发明电子地图多边形三角剖分方法的过程。
[0134] 步骤1 :初始化多边形,即将经过预处理后的点集的边缘的点进行连线,形成没有 相交线的多边形,包括如下子步骤:
[0135] a)剔除重复的点;
[0136] b)检查多边形的点的连线是否自相交,如果自相交,算法结束。
[0137] 步骤2 :初始化,包括以下子步骤:
[0138] 步骤 2. 1 :建立 BSTree ;
[0139] a)计算多边形每个内角角度;
[0140] b)内角小于180度的顶点,按内角大小排序;
[0141] c)创建初始状态平衡的BSTree ;
[0142] 步骤 2. 2 :建立 KDTree ;
[0143] 步骤2. 3 :寻找最小的耳;
[0144] a)遍历BSTree的中序周游索引,测试P(i)是否是耳;
[0145] b)计算Λ P (i_l) P (i) P (i+Ι)的 Bound Box ;
[0146] c)使用 KDTree 选取 Bound Box 中的点;
[0147] d)测试AP(i_l)P(i)P(i+l)内是否存在点;
[0148] e) AP(i_l)P(i)P(i+l)中存在点,转入a)测试下一个顶点;
[0149] f)进入步骤2. 4,切害|]最小的耳;
[0150] 需要指出的是,一般来说最小的内角形成的三角形是耳,因此使用中序周游索引 几乎是线性查找。
[0151] 步骤2. 4 :切割最小的耳;
[0152] a)切除耳 P(i_l)P(i)P(i+l);
[0153] b)从 BSTree 中删除顶点 P(i),P(i_l),P(i+l);
[0154] c)计算剩余多边形中顶点P(i-l)的内角角度,如果小于180插入BSTree ;
[0155] d)计算剩余多边形中顶点P(i+1)的内角角度,如果小于180插入BSTree ;
[0156] e)测试剩余多边形的顶点数;
[0157] f)剩余多边形顶点数大于3,继续剖分,转入步骤2. 3
[0158] g)剩余多边形顶点数等于3,剖分完毕。
[0159] 步骤2. 5:生成三角网。
[0160] 本发明还提供一种电子地图多边形三角剖分装置,包括:
[0161] 多边形生成模块,用于将经过预处理后的点集的边缘的点进行连线,形成没有相 交线的多边形;
[0162] 最小角查找模块,用于计算所述多边形的每一个内角的角度,并获得所述多边形 中小于180度的内角中的最小角;
[0163] 三角形生成模块,用于根据所述最小角的顶点、以及所述最小角的顶点的相邻的 所述多边形的顶点构成一三角形;
[0164] 耳判断模块,用于根据所述多边形的其他顶点是否存在于所述三角形内判断所述 三角形是否为所述多边形的耳,
[0165] 如果所述多边形的其他顶点不存在于所述三角形内,则所述三角形为所述多边形 的耳,
[0166] 如果所述多边形的其他顶点存在于所述三角形内,则所述三角形不是所述多边形 的耳;
[0167] 耳删除模块,用于在所述三角形为所述多边形的耳时,将所述耳从所述多边形中 切割并保存;
[0168] 剩余多边形边数判断模块,用于判断剩余多边形的边数是否大于3,如果是则返回 所述步骤2,如果不是则将所述剩余多边形与所述耳组合生成三角网;
[0169] 所述最小角查找模块还用于在所述三角形不是所述多边形的耳时,在所述多边形 中的其他小于180度的内角中获得最小角。
[0170] 所述最小角查找模块包括:
[0171] 角度计算单元,用于计算所述多边形中所有内角的角度;
[0172] 排序单元,用于将所述多边形中小于180度的内角按照角度大小依次排序;
[0173] 最小角查找单元,用于根据所述多边形中小于180度的内角的角度生成二叉排序 树结构,并获得最小角。
[0174] 所述二叉排序树结构的左子树和右子树均不为空。
[0175] 所述耳删除模块包括:
[0176] 耳删除单元,用于将所述耳从所述多边形中切割并保存,获得剩余多边形;
[0177] 二叉排序树重构单元,用于从所述二叉排序树结构中删除所述三角形的三个顶 点,构成新的二叉排序树;
[0178] 所述角度计算单元,还用于计算与所述最小角相邻的两个顶点在所述剩余多边形 中形成的新的内角的角度;
[0179] 所述二叉排序树重构单元还用于将与所述最小角相邻的两个顶点在所述剩余多 边形中形成的新的内角中、角度小于180度的内角插入所述新的二叉排序树中。
[0180] 所述最小角查找模块还包括:
[0181] 指针生成单元,用于按照所述二叉排序树中的数值的大小在所述二叉排序树结构 中建立用于中序周游索引的指针;
[0182] 所述最小角查找单元还用于按照所述指针的方向查找所述多边形中的其他小于 180度的内角中的最小角。
[0183] 所述耳判断模块包括:
[0184] KDTree结构生成单元,用于根据所述点集中的边缘的点的(x,y)坐标建立KDTree 结构;
[0185] 包围矩形生成单元,用于根据所述三角形顶点的(X,y)坐标建立所述三角形的包 围矩形;
[0186] 耳判断单元,用于根据KDTree结构的范围查找算法判断所述多边形的其他顶点 是否存在于所述包围矩形内,从而判断所述多边形的其他顶点是否存在于所述三角形内,
[0187] 如果所述多边形的其他顶点不存在于所述包围矩形内,则所述多边形的其他顶点 不存在于所述三角形内,则所述三角形为所述多边形的耳,
[0188] 如果所述多边形的其他顶点存在于所述包围矩形内,则所述多边形的其他顶点存 在于所述三角形内,则所述三角形不是所述多边形的耳。
[0189] 所述包围矩形由所述三角形顶点中的最小X坐标、最小y坐标、最大X坐标、最大 y坐标形成。
[0190] 需要说明的是:多边形的两个点之间的连线满足以下两个条件,则该连线为多边 形的对角线:
[0191] a)在多边形内;
[0192] b)没有与其他边相交;
[0193] 例如图3中:
[0194] L(P3,P1)在多边形外,不是对角线;
[0195] L(P3,P8)与L(P6,P7)相交,不是对角线;
[0196] L(P3,P6)、L(P3,P7)、L(P4,P6)等满足上述条件,是对角线。
[0197] 若P(i_l),P(i),P(i+l)是多边形的连续的顶点,且P(i_l),P(i+l)是多边形的对 角线,那么P(i-l),P(i),P(i+l)是多边形的一个耳,P(i)是耳尖。例如图3中:
[0198] P4,P5,P6是连续顶点,并且L(P4,P6)是多边形的对角线,因此P5是耳尖。
[0199] 切去一个"耳"之后的多边形称为剩余多边形,例如图3、图4中:
[0200] 多边形Pl,P2, P3, P4, ·P13切去P1之后,P2, P3, P4.…P13称为剩余多边形。
[0201] 以上所述为本发明较佳实施例,应当指出,对于本领域技术人员来说,在不脱离本 发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明保 护范围。
【权利要求】
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坐标形成。
【文档编号】G06T17/05GK104143214SQ201310164769
【公开日】2014年11月12日 申请日期:2013年5月7日 优先权日:2013年5月7日
【发明者】焦毅 申请人:北京四维图新科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1