CN112991529B - 一种利用三角形进行地图网格化的划分算法 - Google Patents

一种利用三角形进行地图网格化的划分算法 Download PDF

Info

Publication number
CN112991529B
CN112991529B CN202110237718.2A CN202110237718A CN112991529B CN 112991529 B CN112991529 B CN 112991529B CN 202110237718 A CN202110237718 A CN 202110237718A CN 112991529 B CN112991529 B CN 112991529B
Authority
CN
China
Prior art keywords
triangle
constraint
point
edge
algorithm
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.)
Active
Application number
CN202110237718.2A
Other languages
English (en)
Other versions
CN112991529A (zh
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.)
Yijing Zhilian Suzhou Technology Co ltd
Original Assignee
Yijing Zhilian Suzhou Technology 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 Yijing Zhilian Suzhou Technology Co ltd filed Critical Yijing Zhilian Suzhou Technology Co ltd
Priority to CN202110237718.2A priority Critical patent/CN112991529B/zh
Publication of CN112991529A publication Critical patent/CN112991529A/zh
Application granted granted Critical
Publication of CN112991529B publication Critical patent/CN112991529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种利用三角形进行地图网格化的划分算法,采用Douglas‑Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网,所述采用Douglas‑Peucker算法提取区域边界,通过多边形来拟合曲线,具体的算法步骤如下:S1、连接曲线首尾两点A、B形成一条直线AB;S2、计算曲线上离该直线段距离最大的点C,计算其与AB的距离d;S3、比较该距离与预先给定的阈值threshold的大小,S4、当所有曲线都处理完毕后,依次连接各个分割点形成折线,作为原曲线的近似,本发明结构科学合理,使用安全方便,采用Douglas‑Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网,可以快速准确的对地图区域进行合理的三角形网格划分。

Description

一种利用三角形进行地图网格化的划分算法
技术领域
本发明涉及地理信息技术领域,具体为一种利用三角形进行地图网格化的划分算法。
背景技术
地理信息是地理数据所蕴含和表达的地理含义,是与地理环境要素有关的物质的数量、质量、性质、分布特征、联系和规律的数字、文字、图像和图形等的总称;
在地理信息数据处理过程中,经常会用到网格化处理的方法,如何通过合理的方法对给定的区域进行网格化,让网格能够充分的逼近区域地图,是在网格化处理中重要的处理方法。
发明内容
本发明提供一种利用三角形进行地图网格化的划分算法,可以有效解决上述背景技术中提出如何通过合理的方法对给定的区域进行网格化,让网格能够充分的逼近区域地图的问题。
为实现上述目的,本发明提供如下技术方案:一种利用三角形进行地图网格化的划分算法,采用Douglas-Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网;
所述采用Douglas-Peucker算法提取区域边界,通过多边形来拟合曲线,具体的算法步骤如下:
S1、连接曲线首尾两点A、B形成一条直线AB;
S2、计算曲线上离该直线段距离最大的点C,计算其与AB的距离d;
S3、比较该距离与预先给定的阈值threshold的大小,
S4、当所有曲线都处理完毕后,依次连接各个分割点形成折线,作为原曲线的近似。
根据上述技术方案,所述S3中阈值threshold小于threshold,则以该直线作为曲线的近似,该段曲线处理完毕;
阈值threshold距离大于阈值,则用点C将曲线分为两段AC和BC,并分别对两段曲线进行步骤S1-S3的处理。
根据上述技术方案,所述约束Delaunay三角剖分算法得到三角区域格网,在完成了边界提取后,就可以开始向计算区域内插入点进行Delaunay三角剖分;
所述Delaunay三角剖分具体算法步骤如下:
A1、设置一个面积的控制量以便控制剖分的程度,它可以方便的控制三角网格的大小,计算三角形数组中的所有三角形面积大小;
A2、选择面积较大的三角形的最长边作为新的插入点,并将该点加到顶点数组后面;
A3、搜索整个三角形数组,找出所有插入点落在三角形外接圆中的三角形,计入优化三角形数组,并将三角形的边记入边数组,并且不能有重复边,若有重复边就要从数组中删除该边;
A4、连接插入点与边数组中每条边的两个顶点,形成新的三角形加入三角形数组;
A5、删除优化三角形数组中的三角形,更新整个三角形数组,完成一次点的插入;
A6、重复A2、A3、A4直到三角形的面积符合控制要求,结束点的插入,这样就完成了Delaunay剖分。
根据上述技术方案,所述约束线段加入校验的约束Delaunay剖分具体算法步骤如下:
B1、从约束线段集中取出一条约束线段P1P2
B2、判断P1P2是否为原三角网中三角形的一条边,若是则返回上一步处理下一条约束线段,反之做下一步;
B3、在三角网中查找与P1P2相交的三角形,得到P1P2的影响区域MT={T1,T2,…,Tn};
B4、处理约束线段通过三角网中三角形顶点的情况,在搜索P1P2影响区域的同时,判断P1P2是否通过三角形顶点(除P1和P2的顶点),若是则在该顶点处把约束线段P1P2分成若干条约束子线段,并将约束子线段加入到约束线段集中;
B5、处理约束线段的影响区域内有其他约束线段的情况,判断P1P2的影响区域MT中的三角形边集中是否存在约束边,若存在则计算P1P2与原约束边的交点,将交点插入到三角网中,并更新原约束边的拓扑信息,在交点处P1P2与原约束边分别被分割成两条约束子线段,并将约束子线段加入到约束线段集中;
B6、判断P1P2是否被分割,若是则回到步骤1,反之继续下一步;
B7、由MT中的三角形组成P1P2的影响多边形Q,根据直线的分区方程以P1P2为界将Q分成QL和QR两个多边形;
B8、对QL和QR分别进行三角剖分,处理QL;
B9、在约束剖分结束后,对新生成的三角网进行LOP优化,即对新三角网中除边界以外的每一条边,由新边开始,首先判断其是否为约束边,若是则结束操作;否则检测由该边的两个相邻三角形形成的凸四边形是否满足Delaunay三角网的空外接圆性质,如果其中一个三角形的外接圆中含有第四个顶点,则交换该四边形的对角线。
根据上述技术方案,所述剖分如下:
B801、设立一堆栈STACK,并把P1P2放入STACK中;
B802、在STACK中取出一边设为AB,根据点到直线的距离公式,在QL顶点集中找出距边AB最近的点C(C为非A和B的顶点),记录由A、C、B新形成的三角形ABC,并在QL顶点集中删除所找的点C;
B803、判断新边AC(或BC)是否为QL的一条边界,如果不是边界,则把AC(或BC)放入堆栈STACK中;反之则不入栈;
B804、判断堆栈是否为空,如果堆栈不空,则返回(2)继续处理下一条边;反之则返回B801来剖分QR。
与现有技术相比,本发明的有益效果:本发明结构科学合理,使用安全方便,采用Douglas-Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网,可以快速准确的对地图区域进行合理的三角形网格划分。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
在附图中:
图1是本发明的Douglas-Peucker算法步骤结构示意图;
图2是本发明的Delaunay三角剖分具体算法步骤结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例:如图1-2所示,本发明提供技术方案,一种利用三角形进行地图网格化的划分算法,采用Douglas-Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网;
采用Douglas-Peucker算法提取区域边界,通过多边形来拟合曲线,具体的算法步骤如下:
S1、连接曲线首尾两点A、B形成一条直线AB;
S2、计算曲线上离该直线段距离最大的点C,计算其与AB的距离d;
S3、比较该距离与预先给定的阈值threshold的大小,
S4、当所有曲线都处理完毕后,依次连接各个分割点形成折线,作为原曲线的近似。
根据上述技术方案,S3中阈值threshold小于threshold,则以该直线作为曲线的近似,该段曲线处理完毕;
阈值threshold距离大于阈值,则用点C将曲线分为两段AC和BC,并分别对两段曲线进行步骤S1-S3的处理。
根据上述技术方案,约束Delaunay三角剖分算法得到三角区域格网,在完成了边界提取后,就可以开始向计算区域内插入点进行Delaunay三角剖分;
Delaunay三角剖分具体算法步骤如下:
A1、设置一个面积的控制量以便控制剖分的程度,它可以方便的控制三角网格的大小,计算三角形数组中的所有三角形面积大小;
A2、选择面积较大的三角形的最长边作为新的插入点,并将该点加到顶点数组后面;
A3、搜索整个三角形数组,找出所有插入点落在三角形外接圆中的三角形,计入优化三角形数组,并将三角形的边记入边数组,并且不能有重复边,若有重复边就要从数组中删除该边;
A4、连接插入点与边数组中每条边的两个顶点,形成新的三角形加入三角形数组;
A5、删除优化三角形数组中的三角形,更新整个三角形数组,完成一次点的插入;
A6、重复A2、A3、A4直到三角形的面积符合控制要求,结束点的插入,这样就完成了Delaunay剖分。
根据上述技术方案,约束线段加入校验的约束Delaunay剖分具体算法步骤如下:
B1、从约束线段集中取出一条约束线段P1P2
B2、判断P1P2是否为原三角网中三角形的一条边,若是则返回上一步处理下一条约束线段,反之做下一步;
B3、在三角网中查找与P1P2相交的三角形,得到P1P2的影响区域MT={T1,T2,…,Tn};
B4、处理约束线段通过三角网中三角形顶点的情况,在搜索P1P2影响区域的同时,判断P1P2是否通过三角形顶点(除P1和P2的顶点),若是则在该顶点处把约束线段P1P2分成若干条约束子线段,并将约束子线段加入到约束线段集中;
B5、处理约束线段的影响区域内有其他约束线段的情况,判断P1P2的影响区域MT中的三角形边集中是否存在约束边,若存在则计算P1P2与原约束边的交点,将交点插入到三角网中,并更新原约束边的拓扑信息,在交点处P1P2与原约束边分别被分割成两条约束子线段,并将约束子线段加入到约束线段集中;
B6、判断P1P2是否被分割,若是则回到步骤1,反之继续下一步;
B7、由MT中的三角形组成P1P2的影响多边形Q,根据直线的分区方程以P1P2为界将Q分成QL和QR两个多边形;
B8、对QL和QR分别进行三角剖分,处理QL;
B9、在约束剖分结束后,对新生成的三角网进行LOP优化,即对新三角网中除边界以外的每一条边,由新边开始,首先判断其是否为约束边,若是则结束操作;否则检测由该边的两个相邻三角形形成的凸四边形是否满足Delaunay三角网的空外接圆性质,如果其中一个三角形的外接圆中含有第四个顶点,则交换该四边形的对角线。
根据上述技术方案,剖分如下:
B801、设立一堆栈STACK,并把P1P2放入STACK中;
B802、在STACK中取出一边设为AB,根据点到直线的距离公式,在QL顶点集中找出距边AB最近的点C(C为非A和B的顶点),记录由A、C、B新形成的三角形ABC,并在QL顶点集中删除所找的点C;
B803、判断新边AC(或BC)是否为QL的一条边界,如果不是边界,则把AC(或BC)放入堆栈STACK中;反之则不入栈;
B804、判断堆栈是否为空,如果堆栈不空,则返回(2)继续处理下一条边;反之则返回B801来剖分QR。
与现有技术相比,本发明的有益效果:本发明结构科学合理,使用安全方便,采用Douglas-Peucker算法提取区域边界,用约束Delaunay三角剖分算法得到三角区域格网,可以快速准确的对地图区域进行合理的三角形网格划分。
最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

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。
CN202110237718.2A 2021-03-03 2021-03-03 一种利用三角形进行地图网格化的划分算法 Active CN112991529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110237718.2A CN112991529B (zh) 2021-03-03 2021-03-03 一种利用三角形进行地图网格化的划分算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110237718.2A CN112991529B (zh) 2021-03-03 2021-03-03 一种利用三角形进行地图网格化的划分算法

Publications (2)

Publication Number Publication Date
CN112991529A CN112991529A (zh) 2021-06-18
CN112991529B true CN112991529B (zh) 2023-09-08

Family

ID=76352513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110237718.2A Active CN112991529B (zh) 2021-03-03 2021-03-03 一种利用三角形进行地图网格化的划分算法

Country Status (1)

Country Link
CN (1) CN112991529B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115131526B (zh) * 2022-08-25 2022-12-02 广州城市信息研究所有限公司 一种自动化综合制图方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001004843A1 (fr) * 1999-07-12 2001-01-18 Alcatel Integration de lignes de contrainte dans une triangulation de delaunay
CN101609564A (zh) * 2009-07-09 2009-12-23 杭州力孚信息科技有限公司 一种草图式输入的三维网格模型制作方法
CN106485766A (zh) * 2016-10-21 2017-03-08 西南大学 一种约束Delaunay三角网的并行构建方法
CN110335357A (zh) * 2019-05-23 2019-10-15 中国自然资源航空物探遥感中心 一种约束曲面多分辨率控制预处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001004843A1 (fr) * 1999-07-12 2001-01-18 Alcatel Integration de lignes de contrainte dans une triangulation de delaunay
CN101609564A (zh) * 2009-07-09 2009-12-23 杭州力孚信息科技有限公司 一种草图式输入的三维网格模型制作方法
CN106485766A (zh) * 2016-10-21 2017-03-08 西南大学 一种约束Delaunay三角网的并行构建方法
CN110335357A (zh) * 2019-05-23 2019-10-15 中国自然资源航空物探遥感中心 一种约束曲面多分辨率控制预处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于GIS的高质量约束Delaunay三角网格剖分;赵晓东;晏小宝;沈永明;王亮;;地理与地理信息科学;26(第05期);24-28 *

Also Published As

Publication number Publication date
CN112991529A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
Si Adaptive tetrahedral mesh generation by constrained Delaunay refinement
CN110599506B (zh) 一种复杂异形曲面机器人三维测量的点云分割方法
CN109472870B (zh) 一种基于网格重构和多影响域修正的模型匹配方法
CN105787977B (zh) 建筑物矢量边界简化的方法
KR101555426B1 (ko) 지형 렌더링 방법 및 장치
CN114529633B (zh) 一种支持gis线对象和面对象连续lod绘制的方法
CN108763827B (zh) 一种输电塔有限元模型建立方法及装置
CN103714577A (zh) 一种适用于带纹理模型的三维模型简化方法
CN111858810B (zh) 一种面向道路dem构建的建模高程点筛选方法
CN109461209B (zh) 一种新型结构网格生成方法
CN103871102A (zh) 一种基于高程点和道路轮廓面的道路三维精细建模方法
CN110991553A (zh) Bim模型对比方法
CN112991529B (zh) 一种利用三角形进行地图网格化的划分算法
Yang et al. A map‐algebra‐based method for automatic change detection and spatial data updating across multiple scales
CN107818338B (zh) 一种面向地图综合的建筑物群组模式识别的方法及系统
Reberol et al. Quasi-structured quadrilateral meshing in Gmsh--a robust pipeline for complex CAD models
US7181377B1 (en) Method of modifying a volume mesh using sheet extraction
US9262571B2 (en) Layout migration with hierarchical scale and bias method
CN107562779B (zh) 一种二维矢量多边形自相交的空间拓扑处理方法
CN113129443B (zh) 一种拓扑关系保持的三维建筑物简化方法及系统
CN109685844B (zh) 一种编织网格标记和方向校准优化方法及装置
CN113792458B (zh) 一种有限元三角形网格的优化方法及装置
CN112967333B (zh) 基于等级划分的复杂点云骨架提取方法及系统
Siejka et al. Correction of topological errors in geospatial databases
KR20010046823A (ko) 정렬되지 않은 3차원 거리 데이터로부터 캐드모델 생성 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 3015, 3 / F, 6 Chuangye Road, Shangdi Information Industry base, Haidian District, Beijing 100085

Applicant after: Yijing Zhilian (Suzhou) Technology Co.,Ltd.

Address before: 3015, 3 / F, 6 Chuangye Road, Shangdi Information Industry base, Haidian District, Beijing 100085

Applicant before: Yijing Zhilian (Beijing) Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant