蔡振锋,史云飞,张玲玲
(1. 临沂市国土资源局;2.临沂大学)
基于OpenGL的地下管线三维建模关键算法研究*
蔡振锋1,史云飞2,张玲玲2
(1. 临沂市国土资源局;2.临沂大学)
研究了地下管线的三维可视化方法,采用断面与体面三角剖分拟合的方法,提出了管线构模的推理规则,详细阐述了相关构模原理和算法,基于OpenGL实现了直管线、弯曲管线、变径管线、交叉点等管线实体的三维模型构建.
地下管线;管线建模;三维可视化
近年来,随着城市化进程的快速发展,城市地下管线纵横交错,事故频发.为此,国务院办公厅印发了《关于加强城市地下管线建设管理的指导意见》(国办发[2014]27号),要求全面查清城市范围内的地下管线现状,获取准确的管线数据,掌握地下管线的基础信息情况和消除事故隐患[1].管线普查成为城市规划、建设与管理的一项重要基础工作.通过地下管线普查,可查明地下管线的现状,为城市地下空间的合理开发利用、综合管理、城市数字化、智慧城市建设等奠定坚实的基础.随着信息技术的快速发展,利用计算机图形学、数据库等技术,实现地下管线三维可视化及管理,构建城市地下管线三维信息系统,成为国内外相关研究机构和学者一个新的关注方向[2-3].
在平面图上,管线是由管线点按一定连接关系构成的线,具有起点、中间点和终点,有材质、规格等自然属性.这些点被称为属性点,包括:特征点(三通、四通),附属物(阀门、消防栓、污水井等),变径点、变向点等,是管线管理的点元素.
为了在三维透视显示环境中建立准确的管网三维模型,该文采用模拟断面与体面三角剖分拟合重构的方法重建三维管线实体.管线由断面和体面剖分拟合三角形按一定算法规则拟合构成,将管线断面设为S,体面剖分拟合三角形设为T,则管线表示为{Si∪Tj|i,j=1,2,…}.
管线三维模型是以管线中心线为建模基础数据来构建的,从简单的点、线数据获取空间管线体数据,这要明确模型构建坐标系(构模坐标系)与模型集成展示坐标系(展模坐标系)的关系,完成局部坐标系与全局坐标系下的模型数据的转换.
2.1 直管线建模
直管线是由两个断面组成的模型,其构建过程有建立构模坐标系、解算中心线、断面解算、直管线构模四个过程.
(1)直管线构模坐标系
以管线中心线为构模坐标系的y轴;采用右手坐标系法则,以y轴和展模坐标系z轴构成的平面的法向量为构模坐标系的x轴和z轴,如图1(a)所示.
图1 直管线空间坐标系与管线截面图
(2)解算中心线
依据管线起始点确定直管线的中心线.
(3)解算直管线断面
根据管线半径和管线构模坐标系,采用微分处理方法,如图1(b)所示,拟合管线断面.以直管线的起点和终点为构模坐标系的原点,拟合管线断面模型,其计算公式如下:
其中R为管线半径, α=n/2π.
(4)直管线构模
在直管线建模中,断面数据仅是建模过程中的临时数据.采用拟合方法构建准确的管线三维模型的流程如图2(a)所示.
(a)断面与体面三角剖分构模
(b)弯曲管线建模流程图图2 流程图
通过上述四步法实现了直管线模型重构,如图3(a)所示.
图3 实验结果图
2.2 弯曲管线建模
弯曲管线也是一种较为常见的管线类型,其中心线为一条空间折线段.与直管线构模相比,弯曲管线构模更为复杂.弯曲管线建模的关键步骤主要包括确定构模坐标系、解算中心线、解算弯曲管线断面、弯曲管线构模等.构模坐标系的确定与管线断面数据解算与直线管线类似,下面重点介绍解算中心线和弯曲管线构模的关键算法.
(1)弯曲管线中心线解算
弯曲管线都连续平滑,实际管线调查中仅测量拐点坐标数据,为了实现其三维重构,需对弯曲管线在拐点处进行三维插值拟合重构.
图4 中心线插值与变径点
图4(a)是空间弯曲管线中任意相邻的三个部分,其拐点分别为Pi-1、Pi、Pi+1.以其中的Pi拐点为例处拟合弯曲部分.弯曲部分拟合所需计算的参数如下:
采用余玄定理计算圆心角α:
设拐点Pi和弯曲半径,建立构模坐标系,计算相应插值点,生产弯曲管线拟合中心线.
(2)弯曲管线构模
每两个相邻的断面可构成以类直管线,弯曲管线模型可以看做是众多首尾相接的类直管线构成的集合,每个类直管线均采用直管线的构模方法进行构建.对任意两个相邻类直管线共用断面进行统一计算,并记录其在弯曲管线中的断面位置.循环顺序构建类直管线,直至弯曲管线实现完全重构.构建弯曲管线模型的流程,如图2(b)所示.
依据上述对弯曲管线模型构建过程的分析与构模算法,构建的弯曲管线三维模型,如图3(b)所示.
2.3 变径管线建模
变径管线是一种特殊却常见的管线类型.变径管线在形状上类似于直管线,在构模方法上类似于弯曲管线,但又有其自身特点.其构模关键点包括变径点插值计算、断面数据的计算、变径管线模型的构建.
(1)变径点插值算法
为了使变径管线模型在变径处能够平滑过渡,需要在变径点处进行中心线及管线半径的插值计算,如图4(b)所示.以管线变径点为构模坐标系的中心,采用直管建模局部坐标系计算的方法确定变径点插值计算的局部坐标系.为了更好的表达渐变过程,选择较小的半径作为口径变化缓冲区域(L=min(R1,R2))和插值数目n(依据所要达到模拟精度确定).则第i个插值点处的空间坐标值(xi, yi, zi)(局部坐标系下)及半径Ri的计算公式如下:
Ri=L+(i-1/n)×|R1-R2|.
(2)变径管线断面数据的计算及变径管线模型的构建
变径管线断面数据的计算可采用直管线或者弯曲管线断面数据的计算方法,但也有一定的区别.由于变径管线的断面半径不一,在每个断面数据计算时需要调整计算公式中的R值,以便获取正确的断面数据.变径管线三维模型的构建的原理与算法与弯曲管线建模的相同,可以采用弯曲管线由断面数据构建三维模型算法,构建的变径管线三维模型如图3(c)所示.
2.4 交叉管线建模
交叉管线建模较复杂,主要研究实现了四向交叉点、三向交叉点模型的构建,以三向交叉点,(如图5所示)为例介绍其构模过程及主要构模算法.设交叉点P处三个支管为PP0、PP1、PP2,管线半径为R.
图5 三向交叉点图
(1)管线交叉点构模坐标系
(2)交叉点处断面位置的确定及断面数据的计算
准确确定交叉点处各个断面的位置是构建交叉点模型的前提,首先计算一些数据参数,为断面数据的计算做基础准备工作.任意支管口到交叉点构成的边PPi的距离|PPi|=
(3)交叉点断面数据构建模型的算法
交叉管线构模以交叉点处的三角剖分拟合为核心.其主要包括各支管模型的构建、交叉点处模型的构建、交叉点处顶底面的处理等.各支管模型采用直管线构模方法构建.交叉点处构模把相邻两个断面的前一半断面模拟点与另外断面的后一半断面模拟点对应相连,直至全面断面相连接起来.至此,交叉管线各个支管线已经无缝连接,仅剩下交叉点出顶底面空洞需要处理,对上下底面的空洞进行三角化处理,即完成交叉管线的三维构模.依据上述建模过程及建模算法,构建交叉点三维模型,图3(d)为四向交叉点模型图,图3(e)为三向交叉点模型图.
该文依据管线数据特征,深入分析了当前管线建模方法,提出了断面与体面三角剖分拟合的管线构模原理,给出了适应于管线构模的数据结构.详细阐述了直管线、弯曲管线、变径管线、交叉点(四向交叉点、三向交叉点)模型的构建原理与算法,给出了各类管线建模效果图.
[1] 国务院办公厅印发《关于加强城市地下管线建设管理的指导意见》国办发[2014]27号,2014.
[2] 尹宝昌,白驹,崔宇佳,等.管线三维建模及可视化分析[J].交通科技与经济, 2010.
[3] 钟远根,戴相喜,李颖捷,等. 三维地下管线建模及系统实现研究[J]. 现代测绘, 2014(1):25-27.
(责任编辑:季春阳)
The Algorithm Research of the Underground 3D Pipeline Modeling Based on OpenGL
Cai Zhenfeng1, Shi Yunfei2, Zhang Lingling2
(1.Linyi Bureau of Land Resources; 2.Linyi University)
The pipelines are abstracted as straight pipeline, bending pipeline, reducer pipeline and cross pipeline, these three-dimensional models are reconstructed by the method of section and surface triangulation fitting based on OpenGL.
Underground pipeline, Pipeline modeling, 3D visualization
2016-02-23
*国家自然科学基金资助项目(41201407)
O186
A
1000-5617(2016)02-0019-04