CN112991529B - 一种利用三角形进行地图网格化的划分算法 - Google Patents
一种利用三角形进行地图网格化的划分算法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite 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。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115131526B (zh) * | 2022-08-25 | 2022-12-02 | 广州城市信息研究所有限公司 | 一种自动化综合制图方法及*** |
Citations (4)
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 | 中国自然资源航空物探遥感中心 | 一种约束曲面多分辨率控制预处理方法 |
-
2021
- 2021-03-03 CN CN202110237718.2A patent/CN112991529B/zh active Active
Patent Citations (4)
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)
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) | 一种基于网格重构和多影响域修正的模型匹配方法 | |
KR101555426B1 (ko) | 지형 렌더링 방법 및 장치 | |
CN114529633B (zh) | 一种支持gis线对象和面对象连续lod绘制的方法 | |
CN108763827B (zh) | 一种输电塔有限元模型建立方法及装置 | |
CN103714577A (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
CN109461209B (zh) | 一种新型结构网格生成方法 | |
CN103871102A (zh) | 一种基于高程点和道路轮廓面的道路三维精细建模方法 | |
CN110991553A (zh) | Bim模型对比方法 | |
CN112991529B (zh) | 一种利用三角形进行地图网格化的划分算法 | |
CN107562779B (zh) | 一种二维矢量多边形自相交的空间拓扑处理方法 | |
Yang et al. | A map‐algebra‐based method for automatic change detection and spatial data updating across multiple scales | |
CN115345988A (zh) | 基于顶点重要度的二次误差度量边折叠bim轻量化方法 | |
CN107818338B (zh) | 一种面向地图综合的建筑物群组模式识别的方法及*** | |
JP3968056B2 (ja) | 形状作成装置、コンピュータ装置を形状作成装置として動作させるための制御方法、該制御方法をコンピュータ装置に対して実行させるためのコンピュータ実行可能なプログラム | |
CN113792458B (zh) | 一种有限元三角形网格的优化方法及装置 | |
US7181377B1 (en) | Method of modifying a volume mesh using sheet extraction | |
US9262571B2 (en) | Layout migration with hierarchical scale and bias method | |
CN113129443B (zh) | 一种拓扑关系保持的三维建筑物简化方法及*** | |
CN109685844B (zh) | 一种编织网格标记和方向校准优化方法及装置 | |
Lee et al. | Automating Generalization–Tools and Models | |
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 |