CN110032771A - 一种顾及局部细节特征的露天煤矿dem精确裁剪方法 - Google Patents
一种顾及局部细节特征的露天煤矿dem精确裁剪方法 Download PDFInfo
- Publication number
- CN110032771A CN110032771A CN201910205923.3A CN201910205923A CN110032771A CN 110032771 A CN110032771 A CN 110032771A CN 201910205923 A CN201910205923 A CN 201910205923A CN 110032771 A CN110032771 A CN 110032771A
- Authority
- CN
- China
- Prior art keywords
- polygon
- tin
- cut
- cutting
- triangle
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种顾及局部细节特征的露天煤矿DEM精确裁剪方法,步骤为:建立待裁剪三角网与裁剪多边形的格网索引;将裁剪多边形嵌入三角网;生成被裁剪TIN边界;TIN裁剪。本发明在构建待裁剪DEM与裁剪多边形格网索引的基础上,基于待裁剪TIN对裁剪多边形进行精确插值,把裁剪多边形嵌入到待裁剪TIN中,并根据位于裁剪多边形内TIN三角形集合的拓扑关系,构建被裁剪TIN边界,采用边优先的一次性CDT生长算法构建裁剪多边形与被裁剪TIN边界间的三角网,实现了对由TIN描述的DEM的精确裁剪,经实验验证,本发明提出实现的方法效率高、运行稳定,并已成功应用于露天煤矿数字化开采设计实践。
Description
技术领域
本发明属于露天煤矿的技术领域,尤其涉及一种顾及局部细节特征的露天煤矿DEM精确裁剪方法。
背景技术
构建矿床地质模型是实现露天煤矿数字化开采设计的基础,鉴于煤矿床属于典型的沉积矿床,含煤地层一般具有较好的层状结构,因此,煤矿床地质模型中的各个地质层面通常选用由TIN描述的DEM模型。多层地质层面DEM集成后的煤矿床地质模型在后续的数字化开采设计应用过程中,经常需要根据局部采动或地质数据更新范围对已构建的DEM进行裁剪,因此,设计并实现一种高效的DEM裁剪算法,对于实现基于地质层面DEM的露天煤矿数字化开采设计具有重要意义。
DEM裁剪,包括面/面裁剪与线/面两种情况。面/面裁剪是通过计算两个基于TIN描述的DEM之间的交线来分离DEM;线/面裁剪则是用一条空间曲线来对DEM进行分离裁剪。关于面/面裁剪,Maillot在文献(MAILLOT P.G.Three dimensional homogeneous clippingof triangle strips[A].ARVO J.Graphics Gems II[C].New York:AP professional,1991)中提出了基于Sutherland-Hodgman多边形的裁剪算法,进行平面对三角形条带的裁剪,Lindenbeck等(LINDENBECK C.,EBERT H.,ULMER H.,et al.TRICUT:A program toclip triangle meshes using the rapid and triangle libraries and thevisualization toolkit[J].Computers&Geosciences,2002,28(7):841-850)则基于RAPID(Robust and Accurate Polygon Interference Detection)与TRIANGLE库设计了一种TRICUT算法,通过求取三角网交线,实现了不规则三角网之间的相互裁剪。花卫华等在文献(HUA Weihua,DENG Weiping,LIU Xiuguo,et al.Improved Partition Algorithmbetween Triangulated Irregular Network[J].Earth Science-Journal of ChinaUniversity of Geosciences,2006,31(5):619-623)中对TRICUT算法进行了改进,首先通过建立三角网的方向包围盒(oriented bounding box,OBB)树实现曲面间的碰撞检测,然后对发生相交的三角形对统一计算交点,最后通过对顶点坐标归一化完成曲面切割后的快速重构。李江伟等(LI Jiangwei,JI Gang.Rapid Rectangular Grid-Based ClippingAlgorithm of Surface[J].Microcomputer Information,2008,24(27):157-159)将三角网与三角网之间的求交简化为三角网与矩形网格求交,从而提高了裁剪速度。相对于成熟的面/面裁剪算法,由于空间曲线的复杂性,使得任意曲线裁剪曲面算法无法实现,导致不规则三角网的线/面裁剪算法研究并不成熟。
钟家民等在文献(ZHONG Jiamin,GUO Xinzhi,LI Yuan.Precise clippingalgorithm for 3D triangulated irregular network[J].Computer Engineering andApplications,2010,46(16):204-206+231)中提出了一种投影策略实现对TIN进行裁剪,算法中首先将TIN投影到二维平面,然后利用约束Delaunay三角剖分把裁剪多边形的每条边嵌入三角网中,利用边-三角形的拓扑关系删除裁剪多边形外部多余三角形,最后利用边-点的拓扑关系对裁剪多边形顶点高程进行插值,生成裁剪后的TIN模型。杨洋等在文献(YANG Yang,LI Zhaoliang,PAN Mao.Clipping Algorithm for Triangulated IrregularNetwork Based on Topology[J].Geography and Geo-Information Science,2014,30(3):21-24)中提出了一种基于拓扑追踪的TIN裁剪算法,主要是利用依附于三角网上的空间曲线,沿着三角网进行拓扑追踪,并沿追踪轨迹对TIN进行分离,最终实现TIN裁剪。
文献(ZHONG Jiamin,GUO Xinzhi,LI Yuan.Precise clipping algorithm for3D triangulated irregular network[J].Computer Engineering and Applications,2010,46(16):204-206+231)中,通过将裁剪多边形的每条边嵌入三角网后,再利用边-三角形的拓扑关系将裁剪多边形外部的三角形删除,文献(YANG Yang,LI Zhaoliang,PANMao.Clipping Algorithm for Triangulated Irregular Network Based on Topology[J].Geography and Geo-Information Science,2014,30(3):21-24)中主要是通过将裁剪多边形各条边的顶点插入到三角形中,根据点与三角形的位置关系,将边或三角形“打碎”,并重构三角网,然后利用三角网拓扑关系,裁剪TIN。总之,上述技术中均未在裁剪过程中考虑到由TIN描述的DEM的局部细节,实现的并非“精细”裁剪。
发明内容
基于以上现有技术的不足,本发明所要解决的问题在于提供一种顾及局部细节特征的露天煤矿DEM精确裁剪方法,通过计算裁剪多边形各条边与裁剪路径上各三角形中每条边的交点,并将交点插入到裁剪多边形后,再根据裁剪路径上三角网的拓扑关系生成边界,最后重新生成裁剪多边形与被裁剪三角网边界间的三角网实现对三角网的裁剪。
为了解决上述技术问题,本发明通过以下技术方案来实现:
本发明提供一种顾及局部细节特征的露天煤矿DEM精确裁剪方法,包括以下步骤:
S1:建立待裁剪三角网与裁剪多边形的格网索引;
S2:将裁剪多边形嵌入三角网;
S3:生成被裁剪TIN边界;
S4:TIN裁剪。
可选的,所述步骤S1包括:
S11:确定待裁剪TIN的最小外接矩形;
S12:根据TIN中三角形的数量和几何特征将最小外接矩形划分为l×m个小单元格;
S13:根据三角形与格网单元的空间位置关系,将TIN中的三角形映射到格网单元中。
可选的,所述步骤S2包括:
S21:多边形顶点高程插值;
利用三角形三个顶点所构成的平面方程计算裁剪多边形顶点的高程值:
设△ABC三个顶点的坐标分别为(xA,yA,zA),(xB,yB,zB),(xC,yC,zC),由此三点可确定平面法向量为:
a=(yB-yA)(zC-zA)-(zB-zA)(yC-yA)
b=(zB-zA)(xC-xA)-(xB-xA)(zC-zA)
c=(xB-xA)(yC-yA)-(yB-yA)(xC-xA)
则待插值顶点M的高程zM为:
S22:计算多边形与TIN三角形交点。
进一步的,所述步骤S3包括:
S31:获取裁剪多边形内外部三角形集合;
S32:重建裁剪多边形内外部TIN拓扑结构。
进一步的,所述获取裁剪多边形内外部三角形集合步骤中,首先需要确定TIN中三角形与裁剪多边形的位置关系,当三角形三个顶点均位于裁剪多边形外部时,根据其与裁剪多边形是否相交确定该三角形与裁剪多边形的位置关系,其中,点与多边形的位置关系采用射线法判断,具体步骤为:
S311:判断点与多边形最小外接矩形的关系,若点位于多边形最小外接矩形的外部,则可直接判断点位于多边形外部,否则继续步骤S312;
S312:根据多边形各组成直线段方程判断点是否位于多边形边上,将三角形顶点位于多边形边上按与多边形相交处理;
S313:若点不位于多边形边上,则计算从该点发出的射线与多边形交点个数,当交点个数为偶数时,点位于多边形内部,否则位于多边形外部。
进一步的,所述重建裁剪多边形内外部TIN拓扑结构步骤中,采用基于Hash函数与半边数据结构的TIN拓扑重构算法,具体步骤为:
S321:读取TIN中的一个三角形Fi;
S322:分别计算三角形三个顶点V1,V2,V3的散列地址:
Index=(int)((αX+βY+γZ)C+0.5)&T
式中,α,β,γ为三角形顶点坐标(X,Y,Z)的系数,C为比例系数,T为散列表的长度;
S323:三角形Fi的半边He1包含顶点V1,V2,且V1,V2都存在重合顶点,找出与He1端点相同但方向相反的伙伴半边,对半边He1进行合并;
S324:以半边端点ID是否相等为条件,在以V1为终点的半边表中查找He1的伙伴半边;
S325:对以相关顶点为终点的半边表进行更新;
S326:将当前三角形Fi的三条半边He1,He2,He3插入到TIN的半边集合中;
S326:按以上步骤S321~S326遍历TIN中所有三角形,即完成TIN的拓扑重构。
所述步骤S4包括:
S41:重建边界三角网,以边界边和裁剪多边形各条组成边中的非饱和边为扩展边,采用“最小外接矩形”法搜索DT点,当所有边均为饱和边时,即已完成边界三角网的构建;
S42:分离TIN,修改TIN中与裁剪多边形各组成直线段、被裁剪TIN的边界边相邻接的三角形之间的拓扑关系,把裁剪多边形各组成直线段在TIN中的邻接三角形数修改为1,以删除与裁剪多边形各组成直线段以及被裁剪TIN边界边之间存在邻接关系的三角形之间的拓扑关联,将裁剪TIN从原TIN中分离出来,最终完成TIN裁剪。
由上,本发明的顾及局部细节特征的露天煤矿DEM精确裁剪方法通过计算裁剪多边形各条边与裁剪路径上各三角形中每条边的交点,并将交点插入到裁剪多边形后,再根据裁剪路径上三角网的拓扑关系生成边界,最后重新生成裁剪多边形与被裁剪三角网边界间的三角网实现对三角网的裁剪,本发明方法实现的过程中,顾及了被裁剪TIN的局部细节特征,是真正的“精细”裁剪算法,本发明在构建待裁剪TIN与裁剪多边形格网索引的基础上,基于待裁剪TIN对裁剪多边形进行精确插值,把裁剪多边形嵌入到待裁剪TIN中,并根据位于裁剪多边形内TIN三角形集合的拓扑关系,构建被裁剪TIN边界,采用边优先的一次性CDT生长算法构建裁剪多边形与被裁剪TIN边界间的三角网,实现了对由TIN描述的DEM的精确裁剪,经实验验证,本发明提出实现的方法效率高、运行稳定,并已成功应用于露天煤矿数字化开采设计实践。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下结合优选实施例,并配合附图,详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍。
图1为本发明的顾及局部细节特征的露天煤矿DEM精确裁剪方法的数据结构图;
图2为点与三角形位置关系示意图;
图3为直线段求交示意图;
图4为三角形与裁剪多边形位置关系示意图;
图5为点与多边形位置关系示意图;
图6为TIN半边合并示意图;
图7为本发明的顾及局部细节特征的露天煤矿DEM精确裁剪方法的实验效果图;
图8为本发明对局部DEM模型裁剪后的效果图;
图9为本发明对原始地形DEM进行精确裁剪,并将排土台阶DEM与裁剪后的地形DEM合并后的效果图;
图10为本发明的顾及局部细节特征的露天煤矿DEM精确裁剪方法流程图。
具体实施方式
下面结合附图详细说明本发明的具体实施方式,其作为本说明书的一部分,通过实施例来说明本发明的原理,本发明的其他方面、特征及其优点通过该详细说明将会变得一目了然。在所参照的附图中,不同的图中相同或相似的部件使用相同的附图标号来表示。
在本发明中,为了提高由TIN描述的DEM裁剪效率,首先根据被裁剪TIN的范围及TIN中三角形边长构建格网索引,并将裁剪多边形的点、边及TIN中的点、边与三角形映射到所构建格网索引中的各单元格中,然后,基于被裁剪TIN插值计算待裁剪多边形顶点以及裁剪多边形与TIN中三角形的交点高程,也就是将裁剪多边形“嵌入”到TIN中,然后,确定出在TIN中位于裁剪多边形内以及与裁剪多边形相交的三角形集合,并构建所此三角形集合的“点-边-三角形”拓扑结构,在此基础上,根据边与三角形的邻接关系生成位于裁剪多边形内以及与裁剪多边形相交的三角形集合边界,最后,生成裁剪多边形与三角形集合边界间的三角网,并将所生成的三角网与被裁剪三角网合并,完成对TIN的精确裁剪。
本发明中涉及的主要数据对象包括:TIN,格网索引,TIN中三角形、边、顶点等,用C#.NET定义的数据结构,如图1所示。
用闭合多边形表示裁剪区域,TIN裁剪时,首先基于TIN插值计算多边形顶点高程值以及多边形与TIN中三角形的交点,并将交点与经插值后的多边形顶点重新排序后构成新的闭合多边形裁剪区域,然后将裁剪多边形插入到TIN中,最后根据裁剪要求(保留裁剪多边形内部或外部TIN)删除不需要的三角形,即完成TIN的裁剪。
建立待裁剪三角网与裁剪多边形空间索引的目的是实现空间几何元素的快速定位,加快后续操作速度。在常见的空间索引中,格网索引是一种高效、简洁且易于实现的索引方法,其基本思想是将空间几何元素集的最小外接矩形划分为由若干个小单元格构成的空间网格,并将待处理的空间几何元素根据空间位置关系分配到相应的网格单元中,从而建立空间几何元素集的空间索引。
建立待裁剪TIN与格网索引的具体步骤为:
(1)确定待裁剪TIN的最小外接矩形;
待裁剪TIN的最小外接矩形根据TIN中所有三角形在X,Y方向坐标的最大与最小值确定,其主对角线上的两个顶点坐标分别为(Xmin,Ymin),(Xmax,Ymax)。
(2)根据TIN中三角形的数量和几何特征将最小外接矩形划分为l×m个小单元格;
小单元格的大小决定了单元格内关联的三角片数量,单元格过大或过小都将影响算法效率,本发明通过实验确定单元格大小cellsize为TIN中所有三角形平均边长的1.3倍。
取两个整数(i,j)来唯一地标识每一个小单元格,i,j的值分别代表该网格单元在x,y轴方向的编号。
(3)根据三角形与格网单元的空间位置关系,将TIN中的三角形映射到格网单元中;
设三角形在x,y轴方向的坐标最大值与最小值分别为:xmin,xmax,ymin,ymax,则该三角形在x,y轴方向所占据的单元格范围为:
按上述原理,同样可对裁剪多边形的每条构成边建立格网索引。
按以上步骤建立待裁剪TIN与裁剪多边形的格网索引后,在对裁剪多边形顶点插值和计算多边形各构成边与TIN中三角形交点过程中,则只需对关联于同一个单元格内的顶点、边和三角形进行点与三角形位置关系或边相交测试,而不需遍历TIN中所有三角形,从而使算法效率显著提高。
裁剪多边形嵌入三角网:
裁剪多边形嵌入三角网首先需要基于被裁剪三角网对裁剪多边形的各个顶点进行插值,然后计算裁剪多边形各组成直线段与被裁剪三角网中三角形各条边的交点,并将交点插入到裁剪多边形顶点序列中的正确位置,经过顶点高程插值与插入新增交点后的裁剪多边形即已嵌入到被裁剪三角网中。
(1)多边形顶点高程插值
在基于TIN插值计算多边形顶点高程时,首先要解决的是待插值的多边形顶点落在哪个三角形内的问题,采用上述建立待裁剪TIN与多边形的统一格网索引,然后采用点与三角形位置关系判断算法遍历与待插值顶点邻接于同一个单元格索引的三角形,即可实现对多边形顶点的快速定位。
点与三角形位置关系判断采用向量差积法,如图2所示,裁剪多边形顶点M与△ABC三个顶点所构成的向量分别为和则可按以下规则判断点是否位于△ABC内部:
1)满足以下条件之一,点M位于△ABC内部;
2)满足以下条件之一,点M位于三角形边上;
3)以上条件均不满足,点M位于△ABC外部。
当确定点位于三角形内时,即可利用三角形三个顶点所构成的平面方程计算裁剪多边形顶点的高程值。
设△ABC三个顶点的坐标分别为(xA,yA,zA),(xB,yB,zB),(xC,yC,zC),由此三点可确定平面法向量为:
a=(yB-yA)(zC-zA)-(zB-zA)(yC-yA)
b=(zB-zA)(xC-xA)-(xB-xA)(zC-zA)
c=(xB-xA)(yC-yA)-(yB-yA)(xC-xA) (式1)
则待插值顶点M的高程zM为:
(2)计算多边形与TIN三角形交点
仍旧利用已建立的格网索引,快速确定出与裁剪多边形各组成直线段可能相交的三角形,然后采用直线段相交算法计算出裁剪多边形各组成直线段与三角形各边的交点。
两条直线段的相互位置关系包括重合、不重合相交和不相交三种。如图3所示两条直线段p1p2与q1q2,计算其交点的步骤如下:
1)快速排斥检测
以线段p1p2为对角线的矩形RecA与以线段q1q2为对角线的矩形RecB若不相交,则p1p2与q1q2一定不相交,否则,p1p2与q1q2可能相交。
两个矩形RecA与RecB是否相交可通过以下方法判定:若表达式RecA.minX≤RecB.max、RecB.minX≤RecA.maxX、RecA.minY≤RecB.maxY、RecB.minY≤RecA.maxY均成立,则RecA与RecB相交,否则不相交。
如图3(a),RecA与RecB不相交,p1p2与q1q2不相交,图3(b)图中RecA与RecB相交,但p1p2与q1q2不相交,图3(c)图RecA与RecB相交,p1p2与q1q2相交。可见,RecA与RecB相交不能作为p1p2与q1q2相交的充分条件,需要进一步判断。
2)跨立检测
当两条直线相交时,则必然相互跨立,如图3(c)图,用跨立检测方法判断直线段p1p2与q1q2是否相交的条件为:
当以上两个条件均成立时,两条直线段必相交。
3)计算直线段交点
经快速排斥检测与跨立检测后,对确定相交的直线段,采用以下方法计算交点。
假设图3(c)中,直线段p1p2与q1q2两个端点的坐标分别为(x1,y1),(x2,y2),(x3,y3),(x4,y4),则交点的坐标(x0,y0)为:
计算得到裁剪多边形各组成直线段与TIN中三角形的交点平面坐标后,可进一步采用线性内插法得到交点的高程值。
在计算裁剪多边形与TIN中三角形交点的同时,采用距离法将交点插入到多边形顶点序列中,形成一个新的裁剪多边形。
生成被裁剪TIN边界:
将裁剪多边形嵌入TIN后,需要生成位于裁剪多边形内部和外部的TIN三角形集合边界,以便在后续裁剪过程中,根据所生成的边界重建裁剪多边形与被裁剪TIN边界间的三角网。
获取裁剪多边形内(外)部三角形
获取位于裁剪多边形内(外)部的TIN三角形时,首先需要确定TIN中三角形与裁剪多边形的位置关系(内部、相交、外部,如图4)。
当三角形三个顶点均位于裁剪多边形内部时,则该三角形也一定位于裁剪多边形内部(图4(a));然而,当三角形三个顶点均位于裁剪多边形外部时,并不能确定该三角形一定位于裁剪多边形的外部(图4(b))所示,此时需要进一步根据其与裁剪多边形是否相交才能最终确定该三角形与裁剪多边形的位置关系。
三角形与裁剪多边形是否相交可利用所构建的格网索引,采用上述判断直线段是否相交的算法(即判断三角形各条边与裁剪多边形各组成直线段是否相交),而点与多边形的位置关系(内部、外部、边上)则可采用改进的射线法判断,具体步骤为:
1)判断点与多边形最小外接矩形的关系,若点位于多边形最小外接矩形的外部,则可直接判断点位于多边形外部,否则继续第2)步;
2)根据多边形各组成直线段方程判断点是否位于多边形边上,本发明中将三角形顶点位于多边形边上按与多边形相交处理;
3)若点不位于多边形边上,则计算从该点发出的射线与多边形交点个数,当交点个数为偶数时,点位于多边形内部,否则位于多边形外部,如图5所示。
上述算法对于判断点与凸或凹多边形的位置关系均适用。
裁剪多边形与三角形是否相交可采用上述提出的直线段相交检测算法进行判断。
通过点与裁剪多边形位置关系、裁剪多边形与三角形是否相交判断,即可获取被裁剪TIN中位于裁剪多边形内(外)的三角形集合。
重建裁剪多边形内(外)部TIN拓扑结构
为了生成被裁剪部分TIN三角形集合的边界,需要对位于裁剪多边形内(外)部的TIN三角形集合进行拓扑重构,然后根据TIN拓扑结构中“边-边”、“边-面(三角形)”邻接关系生成被裁剪部分TIN三角形集合的边界。
顶点聚合与重复边合并是TIN拓扑重构的两个主要任务。本发明应用一种基于Hash函数与半边数据结构的TIN拓扑重构算法,首先应用Hash函数计算顶点的散列地址,当顶点散列地址有“冲突”时,用链地址法结合AVL树进行顶点聚合,在顶点聚合的同时,采用改进的半边数据结构,为每个顶点建立一个入射半边索引表完成重复边的合并,从而建立起“边—边”、“边—面(三角形)”之间的邻接关系,实现TIN拓扑重构。
基于Hash函数与半边数据结构的TIN拓扑重构步骤如下:
(1)如图6,读取TIN中的一个三角形Fi;
(2)应用(式4)所示Hash函数分别计算三角形三个顶点V1,V2,V3的散列地址:
Index=(int)((αX+βY+γZ)C+0.5)&T (式4)
上式中,α,β,γ为三角形顶点坐标(X,Y,Z)的系数,α,β,γ的取值直接影响Hash函数的性能,Jan等通过大量实验研究认为α=3,β=5,γ=7较合理;C为比例系数,一般尽量使计算机所能表达的整型数的字长范围都被利用,若计算机CPU为32位,散列表的最大长度可达232-1。为充分利用有效的存储空间,并防止溢出和提高装填因子值,C值一般可通过如下步骤确定:
1)计算三角形顶点的最大坐标Xmax,Ymax,Zmax,则ξmax=αXmax+βYmax+γZmax;
2)C=min{C1,C2},其中C1ξmax≤232-1,C2=232-2k;
T为散列表的长度,一般是计算机所能表达的整型数的范围,其值在(0,2k)之间。若散列表的长度为1024,则T=1023,k=10。
如果在散列表中与各顶点散列地址对应的槽链表非空,则判断当前顶点与该地址槽链表中的顶点是否重合,若重合,将重合顶点的ID值赋给当前顶点,若不重合,将当前顶点插入到槽链表中,并给当前顶点ID赋值num+1(num为TIN顶点集合中的不重合顶点数);
(3)图6中,三角形Fi的半边He1包含顶点V1,V2,且V1,V2都存在重合顶点,因此需要找出与He1端点相同但方向相反的伙伴半边,对半边He1进行合并;
(4)对He1进行合并,只需以半边端点ID是否相等为条件,在以V1为终点的半边表中查找He1的伙伴半边即可。图6所示的TIN模型中,以V1为终点的半边包括H4,H5,H6,H7等四条半边,根据确定伙伴半边的条件可知H4为He1的伙伴半边;
(5)对以相关顶点为终点的半边表进行更新。如图6所示,将半边H4从以V1为终点的半边表中删除(每条半边至多存在一条伙伴半边),同时把半边He3插入到以V1为终点的半边表中,半边He2插入到以V3为终点的半边表中;
(6)将当前三角形Fi的三条半边He1,He2,He3插入到TIN的半边集合中;
按以上步骤(1)~(6)遍历TIN中所有三角形,即完成TIN的拓扑重构。
在重构TIN拓扑的基础上,根据“边—面”邻接关系,可进一步确定出边界半边(边界半边的邻接三角形数量为1),然后再根据“边—边”邻接关系,追踪生成被裁剪三角网的边界。
TIN裁剪:
重建边界三角网
在将裁剪多边形嵌入TIN、重构TIN拓扑并生成被裁剪TIN边界后,要完成TIN的精确裁剪还需要重建裁剪多边形与被裁剪TIN边界之间的三角网。本发明在构建边界三角网时,采用了一种边优先的约束Delaunay三角网构建方法,即:在构建边界三角网时,以边界边和裁剪多边形各条组成边中的非饱和边(边的邻接三角形数<2)为扩展边,采用“最小外接矩形”法搜索DT点(能与扩展边构成Delaunay Triangle的“第三点”),当所有边均为饱和边(边的邻接三角形数=2)时,即已完成边界三角网的构建。
边优先的约束Delaunay三角网构建步骤如下:
(1)从边集合中取出一条非饱和边(边相邻三角形数为1)作为当前扩展边;
(2)用(式5)分别计算当前扩展边起点与终点在格网索引中的单元格,并据此确定扩展边“最小外接矩形”单元格范围;
(3)在步骤(2)确定的单元格范围内搜索可用DT点,在判断点的可见性时,可按上述方法动态建立新生成边的格网索引,并只对新生成边索引单元格所关联的边进行相交检测计算。
(4)计算步骤(3)所有可用DT点中与扩展边构成DT的顶角,并取顶角最大者与当前扩展边构成DT(Delaunay Triangle);
(5)更新顶点与边的饱和状态。点是否饱和可通过计算点角判断,点角是指与点相连的三角形中,以该点为顶点的内角和,当非边界点的点角为360°、边界点的点角与初始点角相等时(边界点的初始点角为与该点相连的两条边界线段的夹角),则该点饱和;边的饱和状态则根据边邻接的三角形数确定,当边邻接的三角形数为2时,则该边饱和。饱和的点与边不再作为后续三角剖分中的可用DT点与扩展边,因此,将其从顶点集合与边集合中动态删除,以提高后续三角剖分效率。
(6)重复上述步骤,直至边集合为空。
分离TIN
重建边界三角网后,仅仅是对嵌入裁剪多边形后的TIN进行了局部修改,新生成的边界三角网与被裁剪TIN之间仍存在拓扑关系,并没有将TIN彻底分离,因此,还需要修改TIN中与裁剪多边形各组成直线段、被裁剪TIN的边界边相邻接的三角形之间的拓扑关系,把裁剪多边形各组成直线段在TIN中的邻接三角形数修改为1,至此,已删除与裁剪多边形各组成直线段以及与被裁剪TIN边界边之间存在邻接关系的三角形之间的拓扑关联,将裁剪TIN从原TIN中分离出来,最终完成TIN裁剪。
应用本发明提出的方法对由TIN描述的DEM进行裁剪,图7所示为本发明提出的顾及局部细节特征的DEM精确裁剪方法实验效果,图7(a)所示为待裁剪地形DEM,图7(b)中矩形框为裁剪多边形,图7(c)为未顾及局部细节特征时的DEM裁剪效果,图7(d)所示为应用本发明提出的顾及局部细节特征的DEM裁剪方法裁剪后的效果。
对图7(c)和图7(d)对比发现,未顾及局部细节特征时对DEM进行裁剪,导致裁剪边界处地形明显失真,裁剪后的DEM与原始地形DEM已严重不符,而采用本发明提出的方法对DEM进行裁剪时,由于对裁剪边界顶点、裁剪多边形各组成直线段与由TIN描述的DEM中三角形边进行了插值和求交计算,很好地保留了被裁剪DEM的局部细节特征,裁剪后的DEM与原始地形DEM特征保持了一致(如图7(d))。
本发明的方法在开发的露天煤矿数字化开采设计软件系统中得到成功应用。
图8所示为应用本发明方法在露天煤矿数字化开采设计实践过程中,对局部DEM模型裁剪后的效果。图8(a)是原始地形DEM与裁剪多边形,图8(b)是保留裁剪多边形外部DEM的裁剪效果,图8(c)是保留裁剪多边形内部DEM的裁剪效果。
图9所示为应用本发明算法在编制露天煤矿排土工程计划时,根据计划排土台阶DEM模型边界,对原始地形DEM进行精确裁剪,并将排土台阶DEM与裁剪后的地形DEM合并后的效果。
本发明的顾及局部细节特征的露天煤矿DEM精确裁剪方法通过计算裁剪多边形各条边与裁剪路径上各三角形中每条边的交点,并将交点插入到裁剪多边形后,再根据裁剪路径上三角网的拓扑关系生成边界,最后重新生成裁剪多边形与被裁剪TIN边界间的三角网实现对TIN的裁剪,本发明方法实现的过程中,顾及了被裁剪DEM的局部细节特征,是真正的“精细”裁剪算法,本发明在构建待裁剪DEM与裁剪多边形格网索引的基础上,基于待裁剪TIN对裁剪多边形进行精确插值,把裁剪多边形嵌入到待裁剪TIN中,并根据位于裁剪多边形内三角形集合的拓扑关系,构建被裁剪TIN边界,采用边优先的一次性CDT生长算法构建裁剪多边形与被裁剪TIN边界间的三角网,实现了对由TIN描述的DEM的精确裁剪,经实验验证,本发明提出实现的方法效率高、运行稳定,并已成功应用于露天煤矿数字化开采设计实践。
在露天煤矿数字化开采设计过程中,DEM裁剪方法一种应用频率较高的基础方法。本发明提出的顾及局部细节特征的露天煤矿DEM裁剪方法,首先通过建立待裁剪TIN的格网索引,完成对裁剪多边形顶点以及交点高程的快速插值计算,然后应用Hash函数与改进的半边数据结构重构裁剪多边形内TIN拓扑,最后采用一种边优先的CDT生长方法构建裁剪多边形与被裁剪多边形边界间的TIN,实现了对TIN的精确裁剪。本发明方法已成功应用于露天煤矿数字化开采设计实践,应用表明,算法运行稳定、时间效率高,且保留了被裁剪TIN的局部细节,具有较广泛的推广应用价值。
以上所述是本发明的优选实施方式而已,当然不能以此来限定本发明之权利范围,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变动,这些改进和变动也视为本发明的保护范围。
Claims (7)
1.一种顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,包括以下步骤:
S1:建立待裁剪三角网与裁剪多边形的格网索引;
S2:将裁剪多边形嵌入三角网;
S3:生成被裁剪TIN边界;
S4:TIN裁剪。
2.如权利要求1所述的顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,所述步骤S1包括:
S11:确定待裁剪TIN的最小外接矩形;
S12:根据TIN中三角形的数量和几何特征将最小外接矩形划分为l×m个小单元格;
S13:根据三角形与格网单元的空间位置关系,将TIN中的三角形映射到格网单元中。
3.如权利要求1所述的顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,所述步骤S2包括:
S21:多边形顶点高程插值;
利用三角形三个顶点所构成的平面方程计算裁剪多边形顶点的高程值:
设△ABC三个顶点的坐标分别为(xA,yA,zA),(xB,yB,zB),(xC,yC,zC),由此三点可确定平面法向量为:
a=(yB-yA)(zC-zA)-(zB-zA)(yC-yA)
b=(zB-zA)(xC-xA)-(xB-xA)(zC-zA)
c=(xB-xA)(yC-yA)-(yB-yA)(xC-xA)
则待插值顶点M的高程zM为:
S22:计算多边形与TIN三角形交点。
4.如权利要求1所述的顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,所述步骤S3包括:
S31:获取裁剪多边形内外部三角形集合;
S32:重建裁剪多边形内外部TIN拓扑结构。
5.如权利要求4所述的顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,所述获取裁剪多边形内外部三角形集合步骤中,首先需要确定TIN中三角形与裁剪多边形的位置关系,当三角形三个顶点均位于裁剪多边形外部时,根据其与裁剪多边形是否相交确定该三角形与裁剪多边形的位置关系,其中,点与多边形的位置关系采用射线法判断,具体步骤为:
S311:判断点与多边形最小外接矩形的关系,若点位于多边形最小外接矩形的外部,则可直接判断点位于多边形外部,否则继续步骤S312;
S312:根据多边形各组成直线段方程判断点是否位于多边形边上,将三角形顶点位于多边形边上按与多边形相交处理;
S313:若点不位于多边形边上,则计算从该点发出的射线与多边形交点个数,当交点个数为偶数时,点位于多边形内部,否则位于多边形外部。
6.如权利要求4所述的顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,所述重建裁剪多边形内外部TIN拓扑结构步骤中,采用基于Hash函数与半边数据结构的TIN拓扑重构算法,具体步骤为:
S321:读取TIN中的一个三角形Fi;
S322:分别计算三角形三个顶点V1,V2,V3的散列地址:
Index=(int)((αX+βY+γZ)C+0.5)&T
式中,α,β,γ为三角形顶点坐标(X,Y,Z)的系数,C为比例系数,T为散列表的长度;
S323:三角形Fi的半边He1包含顶点V1,V2,且V1,V2都存在重合顶点,找出与He1端点相同但方向相反的伙伴半边,对半边He1进行合并;
S324:以半边端点ID是否相等为条件,在以V1为终点的半边表中查找He1的伙伴半边;
S325:对以相关顶点为终点的半边表进行更新;
S326:将当前三角形Fi的三条半边He1,He2,He3插入到TIN的半边集合中;
S326:按以上步骤S321~S326遍历TIN中所有三角形,即完成TIN的拓扑重构。
7.如权利要求1所述的顾及局部细节特征的露天煤矿DEM精确裁剪方法,其特征在于,所述步骤S4包括:
S41:重建边界三角网,以边界边和裁剪多边形各条组成边中的非饱和边为扩展边,采用“最小外接矩形”法搜索DT点,当所有边均为饱和边时,即已完成边界三角网的构建;
S42:分离TIN,修改TIN中与裁剪多边形各组成直线段、被裁剪TIN的边界边相邻接的三角形之间的拓扑关系,把裁剪多边形各组成直线段在TIN中的邻接三角形数修改为1,以删除与裁剪多边形各组成直线段以及被裁剪TIN边界边之间存在邻接关系的三角形之间的拓扑关联,将裁剪TIN从原TIN中分离出来,最终完成TIN裁剪。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910205923.3A CN110032771B (zh) | 2019-03-18 | 2019-03-18 | 一种顾及局部细节特征的露天煤矿dem精确裁剪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910205923.3A CN110032771B (zh) | 2019-03-18 | 2019-03-18 | 一种顾及局部细节特征的露天煤矿dem精确裁剪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032771A true CN110032771A (zh) | 2019-07-19 |
CN110032771B CN110032771B (zh) | 2023-04-07 |
Family
ID=67236214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910205923.3A Active CN110032771B (zh) | 2019-03-18 | 2019-03-18 | 一种顾及局部细节特征的露天煤矿dem精确裁剪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032771B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737933A (zh) * | 2019-09-06 | 2020-01-31 | 久瓴(上海)智能科技有限公司 | 剪刀撑模型的生成方法、装置、计算机设备和存储介质 |
CN110807831A (zh) * | 2019-09-18 | 2020-02-18 | 重庆大学 | 一种基于最小单元碰撞检测的传感器覆盖范围计算方法 |
CN111105496A (zh) * | 2019-12-19 | 2020-05-05 | 昆明能讯科技有限责任公司 | 一种基于机载激光雷达点云数据的高精dem构建方法 |
CN111583401A (zh) * | 2020-03-21 | 2020-08-25 | 长沙迪迈数码科技股份有限公司 | 露天矿山计划开采边界线的处理方法、装置及存储介质 |
CN114333228A (zh) * | 2020-09-30 | 2022-04-12 | 北京君正集成电路股份有限公司 | 一种婴儿的智能视频看护方法 |
CN117066724A (zh) * | 2023-10-16 | 2023-11-17 | 济南邦德激光股份有限公司 | 一种零件加工图形的快速裁剪方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1505547A2 (en) * | 2003-08-05 | 2005-02-09 | De Rerum Natura S.r.L. Engineering | Method for surveying, processing and making use of data concerning the topographic conformation and the morphology of land and road network |
WO2015139090A1 (en) * | 2014-03-19 | 2015-09-24 | Caterpillar Of Australia Pty Ltd | Visualisation of work status for a mine worksite |
CN107622530A (zh) * | 2017-10-10 | 2018-01-23 | 中国地质大学(武汉) | 一种高效鲁棒的三角网切割方法 |
CN107886575A (zh) * | 2017-11-14 | 2018-04-06 | 辽宁工程技术大学 | 一种露天矿采场三角形网格裁剪煤层四边形网格的方法 |
-
2019
- 2019-03-18 CN CN201910205923.3A patent/CN110032771B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1505547A2 (en) * | 2003-08-05 | 2005-02-09 | De Rerum Natura S.r.L. Engineering | Method for surveying, processing and making use of data concerning the topographic conformation and the morphology of land and road network |
WO2015139090A1 (en) * | 2014-03-19 | 2015-09-24 | Caterpillar Of Australia Pty Ltd | Visualisation of work status for a mine worksite |
CN107622530A (zh) * | 2017-10-10 | 2018-01-23 | 中国地质大学(武汉) | 一种高效鲁棒的三角网切割方法 |
CN107886575A (zh) * | 2017-11-14 | 2018-04-06 | 辽宁工程技术大学 | 一种露天矿采场三角形网格裁剪煤层四边形网格的方法 |
Non-Patent Citations (8)
Title |
---|
万波等: "一种基于三角网的地质体三维模型切割方法", 《地球科学》 * |
孙殿柱等: "三角网格曲面模型快速求交算法", 《北京工业大学学报》 * |
李际军等: "复合三角Bézier曲面求交和裁剪的实现", 《软件学报》 * |
熊祖强等: "基于TIN的三维地层建模及可视化技术研究", 《岩土力学》 * |
赵景昌等: "TIN快速求交算法及其应用研究", 《计算机应用研究》 * |
赵景昌等: "基于空间索引与碰撞检测的TIN求交算法", 《计算机工程》 * |
钟家民等: "三维不规则三角网格的精确裁剪算法", 《计算机工程与应用》 * |
马智民等: "Delaunay三角网构建DEM整体优化算法", 《长安大学学报(自然科学版)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737933A (zh) * | 2019-09-06 | 2020-01-31 | 久瓴(上海)智能科技有限公司 | 剪刀撑模型的生成方法、装置、计算机设备和存储介质 |
CN110807831A (zh) * | 2019-09-18 | 2020-02-18 | 重庆大学 | 一种基于最小单元碰撞检测的传感器覆盖范围计算方法 |
CN110807831B (zh) * | 2019-09-18 | 2023-03-28 | 重庆大学 | 一种基于最小单元碰撞检测的传感器覆盖范围计算方法 |
CN111105496A (zh) * | 2019-12-19 | 2020-05-05 | 昆明能讯科技有限责任公司 | 一种基于机载激光雷达点云数据的高精dem构建方法 |
CN111583401A (zh) * | 2020-03-21 | 2020-08-25 | 长沙迪迈数码科技股份有限公司 | 露天矿山计划开采边界线的处理方法、装置及存储介质 |
CN114333228A (zh) * | 2020-09-30 | 2022-04-12 | 北京君正集成电路股份有限公司 | 一种婴儿的智能视频看护方法 |
CN114333228B (zh) * | 2020-09-30 | 2023-12-08 | 北京君正集成电路股份有限公司 | 一种婴儿的智能视频看护方法 |
CN117066724A (zh) * | 2023-10-16 | 2023-11-17 | 济南邦德激光股份有限公司 | 一种零件加工图形的快速裁剪方法、装置及设备 |
CN117066724B (zh) * | 2023-10-16 | 2024-02-06 | 济南邦德激光股份有限公司 | 一种零件加工图形的快速裁剪方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110032771B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032771A (zh) | 一种顾及局部细节特征的露天煤矿dem精确裁剪方法 | |
US10504284B2 (en) | Method for automatic modeling of complex buildings with high accuracy | |
CN103761397B (zh) | 用于面曝光增材成型的3d模型切片及投影面生成方法 | |
CN103226844B (zh) | 一种基于空间数据结构体系的三维地质巷道建模方法 | |
CN103679807B (zh) | 一种带边界约束的散乱点云重构方法 | |
US7561156B2 (en) | Adaptive quadtree-based scalable surface rendering | |
US20020030677A1 (en) | Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications | |
CN105513131B (zh) | 一种顾及褶皱的三维地质结构模型角点网格剖分方法 | |
CN104966317B (zh) | 一种基于矿体轮廓线的三维自动建模方法 | |
CN109410332A (zh) | 基于点线面的三维空间几何虚拟模型细节层次裁剪方法 | |
Zhou et al. | 2.5 D building modeling with topology control | |
CN111968231A (zh) | 一种基于地质图切剖面的三维地层建模方法 | |
CN111784840B (zh) | 基于矢量数据自动分割lod层级三维数据单体化方法及系统 | |
CN102663800A (zh) | 一种顾及城市意象的城市建筑综合与渲染的方法 | |
CN102147936B (zh) | 一种基于级联的在三维地形表面无缝叠加二维矢量的方法 | |
CN114255188B (zh) | 三维地质岩性网格模型体绘制的边界线性平滑方法及装置 | |
CN116152461B (zh) | 地质建模方法、装置、计算机设备及计算机可读存储介质 | |
CN109636889B (zh) | 一种基于动态缝合带的大规模三维地形模型渲染方法 | |
CN108986024A (zh) | 一种基于网格的激光点云规则排列处理方法 | |
CN112307553A (zh) | 一种对三维道路模型进行提取与简化的方法 | |
CN104751479A (zh) | 基于tin数据的建筑物提取方法和装置 | |
CN104715507A (zh) | 一种基于曲面片的三维地理实体自动构建方法 | |
CN105894553B (zh) | 一种基于格栅选择的街巷空间形态布局方法 | |
Haala et al. | Cell decomposition for the generation of building models at multiple scales | |
CN113129443A (zh) | 一种拓扑关系保持的三维建筑物简化方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |