APP下载

城市地下管线三维可视化系统关键技术研究

2022-03-07赵亚蓓时建新

电子测试 2022年24期
关键词:横断面圆环剖面

赵亚蓓,时建新

(1河南测绘职业学院,河南郑州,450015; 2 中铁七局集团广州工程有限公司,广东广州,510700)

0 引言

目前地下管线的信息化水平发展不均衡,有些城市已建立了地下管线信息系统,而有些城市比较落后,地下管线数据精度不高、资料不完整,不能实现动态更新。因此建立一个较为完善的城市地下管线三维可视化系统[1],是一个刻不容缓的问题。本文在前期对地下管线信息化建设情况调查研究的基础上[2],重点针对地下管线三维可视化系统建设中的管线空间模型转换、空间衔接等几个关键技术进行了相关研究。

1 管线空间模型转换

管线可视化需要先对管线空间位置进行模型转换[3],在 OpenGL中,通过调用glRotate*()、glTranlate*()、glscale*()这三个进行模型转换的函数可以实现对管线的移动、旋转或缩放等转换。其中函数glRotate*(α,x,y,z)的功能是在物体绕原点到点(x,y,z)的直线矢量逆时针旋转的过程中可以生成一个旋转矩阵。利用圆柱函数、球函数和3Dmax模型分别来实现管线的直线部分、管线的结点和附属设施的显示。通过空间模型转换可以使管线两端点形成的向量与轴线相重合,如图1所示。

图1 管线模型变换图

首先将模型变换所需的参数(α,x,y,z)的算出来:

设管线段两端点的坐标为A(x1,y1,z1),B(x2,y2,z2);

则圆柱的高度为:

1.1 计算函数glRotate*(α,x,y,z)中参数x,y,z的值

1.2 计算函数glRotate*(α,x,y,z)中的参数α

1.3 空间显示

如图1所示,先把圆柱旋转使圆柱的轴线与OB'相重合,然后再将圆柱平移x1,y1,z1,就和线AB相重合。管线的空间显示代码如下:

2 管线的空间衔接

对管线进行模型转换[4]后,再对其空间位置进行衔接。衔接的方法主要有以下两种。

2.1 剪切面法

剪切面法是首先延长进行空间衔接的管线的直线部分,再剪切掉多余的部分进行衔接,如图2所示。剪切面的代数方程为:

图2 剪切面图

2.2 圆环面法

圆环面法的优势是可以平滑过渡管线进行自然衔接,可以利用OpenGL中的glutSolidTorus函数实现。实现的步骤如下:

2.2.1 模型转换

首先对空间模型进行转换,如图3所示:在OpenGL中,圆环面所在的平面表达式为:

图3 圆环模型变换图

设任意两管段的向量为(a1,b1,c1)、(a2,b2,c2),其组成的平面方程为:

将圆环面平移到平面APB中。

联立方程(7)(8)的交线方程 :

两平面的夹角α即为两平面垂线夹角,平面的垂线向量及夹角为:

平移量为:

其中 :(xp,yp,zp)为P点坐标 ;

r为圆环的内半径;

2.2.2 剪切面的确定

OpenGL中,附加的剪切面可以通过函数glClipPlane(Glenum plane,const Gldouble *equation)来实现,其中参数equation可以表示一个数组,该数组包含四个元素;参数plane是用来指定剪切面的编号。剪切面方程为Ax+By+Cz+D=0,进行剪切时,调用函数g1Enable(GL_CLIP_PLANEi)启用剪切面,使附加剪切面产生剪切作用,得到剪切面的四个参数A、B、C和D。当不再使用某剪切面时,通过调用函数g1Disable(GL_CLIP_PLANEi)来关闭该剪切面。当管道的管径不相同且管段之间没有附属物时,需要用无数圆环面进行拼接[5],如图4所示。

图4 圆环组相接图

3 截面图的生成

绘制截面图是为了研究管线的管径、埋深、走向及相邻管线的空间位置关系,包括横断面图和纵断面图,横断面图是垂直于管线切线方向的截面图,纵断面图是沿着管线方向的截面图。

3.1 横剖面数据计算

绘制横断面图需要对横剖面数据进行计算,首先计算出剖面线与空间管线的交点坐标,然后按一定比例生成截面图。先将剖面线的起点、终点的屏幕坐标转换为世界坐标,然后再分别与各类管线求交点,通过图元ID与数据库中的ID关联进行查询, 可以得到管线两端点的埋深,管线两端点中任一点地埋深以及剖面线与管线交点处的地面高程、管底标高等数据可以通过线性内插求出。如果横断面图的横剖面线与x轴大致平行,将按每个数据的x坐标由小到大的顺序储存在数组中;如果与Y轴大致平行,则按数据的Y轴坐标从小到大的顺序储存在数组中。管径从数据库中取得,得到管线的三维坐标和管径后就可以以横断面线的起点作为原点,横断面线作为横坐标轴,以管线的埋深作为纵坐标建立坐标系来画剖面图了。

3.2 纵剖面数据计算

绘制纵断面图需要对纵剖面数据进行计算,重点是管线的坡度等数据的计算。具体计算方法是利用每条管线的两个端点地面标高计算出管线的坡度,这些标高数据可以从属性数据库中获取。以管线的埋深作为纵坐标,以管线的长度作为横坐标,纵轴的比例尺可以选取横轴比例尺的K倍,这样能清楚地反映出管线的埋深情况。

3.3 原点及纵横轴坐标范围计算

绘制断面图的关键是要确定出原点及纵横轴坐标范围,剖面线起点的坐标即是剖面图原点的坐标,横轴坐标的范围是剖面线起点和终点之间的距离,所以要确定出剖面线起点的坐标和终点的坐标,断面图的纵轴坐标范围是剖面线与各类管线交点的地面高程的最大值。管线断面数据结构的设计需要获取管线的管径、管顶高、管底高等属性信息和交点的三维坐标。设计如下:

4 B/S 与C/S 相结合的体系结构

B/S与C/S两种架构都有各自的优缺点,本文提出将二者相结合,实现优势互补,充分发挥各自的优点。地下管线数据的入库、更新、利用、管理及空间分析等功能可以在C/S架构下实现;地下管线信息的浏览、查询、简单的统计分析等功能可以在B/S架构下实现。根据地下管线数据的特征,B/S架构采用三层结构,即前端浏览器、Web服务器和地图应用服务器、数据库服务器,如图5所示。

图5 B/S三层架构

5 内外业一体化的数据库动态更新机制

5.1 管线数据库的结构设计

构成管线数据库数据结构的数据主要分为专业管线数据和辅助数据,专业管线数据根据管线种类进行分层管理[6],主要分为给水层、排水层、电信层、暖气层、热力层、燃气层;辅助数据包括道路中线、边线及附属设施等。管线数据库的结构设计[7]如图6所示。

图6 地下管线数据结构组织

5.2 管线数据动态更新的内外业一体化技术

城市地下管线三维可视化系统在应用过程中应能实时将新增的管线、改管或拆除等管线的变动情况,传递到系统平台,利用动态更新机制把变化的管线信息在数据库中进行更新,使数据库的信息与实际的管线信息同步。而进行数据库的动态更新,就要利用内外业一体化技术[8],即在统一数据标准的基础上,在管线数据采集、管线数据检查、管线数据库与模型库四者之间建立完备的动态链接机制,尽量避免数据的重复生产,关联空间数据和属性数据,进行数据快速入库,具体流程如图7所示。

图7 数据库动态更新机制流程图

6 检修最佳路径和最近设施分析模块

地下管线三维可视化系统设计的有与城市管理监督指挥中心安全平台软件的接口,如某处热力管线出现爆裂,安全平台将启动应急处置预案,同时系统启用事故分析功能,根据最佳路径分析功能,进行最近设施分析,查找最近阀门的位置,并通过缓冲区分析功能确定该故障所影响到的用户范围,快速制定出应急抢修预案,在最短的时间内关闭阀门并及时到现场开挖,把故障带来的影响降至最低。进行最佳路线分析时,系统平台将各种管线、检修井点、发生故障的地点等地图要素加载到地图控件中,这样用户输入需要检修的起点与终点,利用最佳路径算法,确定最佳路线。最近设施分析方法与最佳路径相似,是在管线出现故障时,首先考虑各种管线的压力和流向等特点,然后设置查找方向、上游设施、下游设施,从而快速及时找到最近的阀门等设施,制定出合理的抢修方案。

猜你喜欢

横断面圆环剖面
ATC系统处理FF-ICE四维剖面的分析
加权全能量最小的圆环形变
猪圆环病毒病的发生、诊断和防治
一例鸭圆环病毒病的诊断
市政道路横断面设计要点分析
巧剪圆环
广州市健康体检人群种植修复情况的横断面研究
复杂多约束条件通航飞行垂直剖面规划方法
2014年某院医院感染横断面调查
船体剖面剪流计算中闭室搜索算法