[发明专利]一种利用三角形进行地图网格化的划分算法有效
申请号: | 202110237718.2 | 申请日: | 2021-03-03 |
公开(公告)号: | CN112991529B | 公开(公告)日: | 2023-09-08 |
发明(设计)人: | 田鹏飞;孙伟 | 申请(专利权)人: | 亿景智联(苏州)科技有限公司 |
主分类号: | G06T17/05 | 分类号: | G06T17/05;G06T17/20 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 三角形 进行 地图 网格 划分 算法 | ||
1.一种利用三角形进行地图网格化的划分算法,其特征在于:采用Douglas-Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网;
所述采用Douglas-Peucker算法提取区域边界,通过多边形来拟合曲线,具体的算法步骤如下:
S1、连接曲线首尾两点A、B形成一条直线AB;
S2、计算曲线上离该直线段距离最大的点C,计算其与AB的距离d;
S3、比较该距离与预先给定的阈值threshold的大小,
S4、当所有曲线都处理完毕后,依次连接各个分割点形成折线,作为原曲线的近似;
所述约束Delaunay三角剖分算法得到三角区域格网,在完成了边界提取后,就可以开始向计算区域内插入点进行Delaunay三角剖分;
所述Delaunay三角剖分具体算法步骤如下:
A1、设置一个面积的控制量以便控制剖分的程度,它可以方便的控制三角网格的大小,计算三角形数组中的所有三角形面积大小;
A2、选择面积较大的三角形的最长边作为新的插入点,并将该点加到顶点数组后面;
A3、搜索整个三角形数组,找出所有插入点落在三角形外接圆中的三角形,计入优化三角形数组,并将三角形的边记入边数组,并且不能有重复边,若有重复边就要从数组中删除该边;
A4、连接插入点与边数组中每条边的两个顶点,形成新的三角形加入三角形数组;
A5、删除优化三角形数组中的三角形,更新整个三角形数组,完成一次点的插入;
A6、重复A2、A3、A4直到三角形的面积符合控制要求,结束点的插入,这样就完成了Delaunay剖分
2.根据权利要求1所述的一种利用三角形进行地图网格化的划分算法,其特征在于,所述S3中阈值threshold小于threshold,则以该直线作为曲线的近似,该段曲线处理完毕;
阈值threshold距离大于阈值,则用点C将曲线分为两段AC和BC,并分别对两段曲线进行步骤S1-S3的处理。
3.根据权利要求1所述的一种利用三角形进行地图网格化的划分算法,其特征在于,约束线段加入校验的约束Delaunay剖分具体算法步骤如下:
B1、从约束线段集中取出一条约束线段P1P2;
B2、判断P1P2是否为原三角网中三角形的一条边,若是则返回上一步处理下一条约束线段,反之做下一步;
B3、在三角网中查找与P1P2相交的三角形,得到P1P2的影响区域MT={T1,T2,…,Tn};
B4、处理约束线段通过三角网中三角形顶点的情况,在搜索P1P2影响区域的同时,判断P1P2是否通过三角形顶点,若是则在该顶点处把约束线段P1P2分成若干条约束子线段,并将约束子线段加入到约束线段集中;
B5、处理约束线段的影响区域内有其他约束线段的情况,判断P1P2的影响区域MT中的三角形边集中是否存在约束边,若存在则计算P1P2与原约束边的交点,将交点插入到三角网中,并更新原约束边的拓扑信息,在交点处P1P2与原约束边分别被分割成两条约束子线段,并将约束子线段加入到约束线段集中;
B6、判断P1P2是否被分割,若是则回到步骤1,反之继续下一步;
B7、由MT中的三角形组成P1P2的影响多边形Q,根据直线的分区方程以P1P2为界将Q分成QL和QR两个多边形;
B8、对QL和QR分别进行三角剖分,处理QL;
B9、在约束剖分结束后,对新生成的三角网进行LOP优化,即对新三角网中除边界以外的每一条边,由新边开始,首先判断其是否为约束边,若是则结束操作;否则检测由该边的两个相邻三角形形成的凸四边形是否满足Delaunay三角网的空外接圆性质,如果其中一个三角形的外接圆中含有第四个顶点,则交换该四边形的对角线。
4.根据权利要求3所述的一种利用三角形进行地图网格化的划分算法,其特征在于,所述剖分如下:
B801、设立一堆栈STACK,并把P1P2放入STACK中;
B802、在STACK中取出一边设为AB,根据点到直线的距离公式,在QL顶点集中找出距边AB最近的点C,记录由A、C、B新形成的三角形ABC,并在QL顶点集中删除所找的点C;
B803、判断新边AC是否为QL的一条边界,如果不是边界,则把AC放入堆栈STACK中;反之则不入栈;
B804、判断堆栈是否为空,如果堆栈不空,则返回(2)继续处理下一条边;反之则返回B801来剖分QR。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亿景智联(苏州)科技有限公司,未经亿景智联(苏州)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110237718.2/1.html,转载请声明来源钻瓜专利网。