首页> 中国专利> 一种基于面向对象编程的地下管道三维可视化系统及方法

一种基于面向对象编程的地下管道三维可视化系统及方法

摘要

本发明公开一种基于面向对象编程的地下管道三维可视化系统及方法,该方法包括采集管道数据;基于所述管道数据进行三维建模生成第一三维管道模型,并对所述第一三维管道模型进行消隐处理,生成连接平滑的第二三维管道模型;对所述第二三维管道模型进行色彩渲染处理,生成第三三维管道模型;将所述第三三维管道模型映射到二维屏幕,生成二维平面投影;将所述二维平面投影关联到三维场景图形。本发明现了对管道的三维可视化,改变了管道显示停留在2维和2.5维带来的不能形象地表现管道之间的空间关系和没有直观视觉效果的缺陷。

著录项

  • 公开/公告号CN112530006A

    专利类型发明专利

  • 公开/公告日2021-03-19

    原文格式PDF

  • 申请/专利权人 四川航天神坤科技有限公司;

    申请/专利号CN202011472123.7

  • 申请日2020-12-15

  • 分类号G06T17/00(20060101);G06T15/00(20110101);

  • 代理机构51237 成都市集智汇华知识产权代理事务所(普通合伙);

  • 代理人李华;温黎娟

  • 地址 610000 四川省成都市经济技术开发区(龙泉驿区)星光中路6号

  • 入库时间 2023-06-19 10:19:37

说明书

技术领域

本发明涉及管道信息管理领域,具体涉及一种基于面向对象编程的地下管道三维可视化系统及方法。

背景技术

现有技术中,管道信息管理主要关注管道的图形和属性信息,对图形与属性进行双向查询,以此具有空间查询和分析的能力。为提高管道信息管理能力,国内外研究机构都将管道信息管理与GIS(地理信息系统(Geographic Information System或Geo-Information system,GIS)有时又称为“地学信息系统”。)结合起来,但仍缺乏管道的可视化能力。为了提高管道图形和数据表达分析能力,在对管道进行可视化时,一般会对管道进行简化和抽象。管道的简化就是将不影响全局特性的附属设施进行删除,将距离较近的管道交叉点和同一处的多个相同设施进行合并,简化后的管网抽象为管段和节点两类元素。管道信息的简化和抽象虽然已经很成熟,但管道的显示大多还停留在2维和2.5维,管道的真实感不强。

综上,将实际的三维管道采用二维管道的方式表示,具有以下的局限性:

a.无法充分表示管道纵横交错的分布,也就是不能形象地表现管道之间的空间关系

b.管道上下起伏,与平面图垂直的管道只能以一个点与相应的文字说明来表示,没有直观的视觉效果。

发明内容

本发明提供一种基于面向对象编程的地下管道三维可视化系统及方法,旨在解决不能形象地表现管道之间的空间关系和没有直观的视觉效果。

为实现上述目的,本发明提供以下技术方案:

本发明提供一种基于面向对象编程的地下管道三维可视化方法,包括:

S1:采集管道数据;

S2:基于所述管道数据进行三维建模生成第一三维管道模型,并对所述第一三维管道模型进行消隐处理,生成连接平滑的第二三维管道模型;

S3:对所述第二三维管道模型进行色彩渲染处理,生成第三三维管道模型;

S4:将所述第三三维管道模型映射到二维屏幕,生成二维平面投影;

S5:将所述二维平面投影关联到三维场景图形。

进一步的,所述S2具体为:

S21:创建一个动态数组和相应的三维数组,将动态数组的值与管道数据相连,建立第一三维管道模型;

S22:利用剪切变换,剪切所述第一三维管道模型衔接时多余的部分,生成连接平滑的第二三维管道模型。

进一步的,所述剪切变换实现方法如下;

S221:创建剪切函数,所述剪切函数的输入值为相连两个第一三维管道模型,返回值为两个管道相连的第二三维管道模型;

S222:创建剪切面函数,所述剪切面函数的输入值为各个剪切点的坐标和两个剪切面的夹角,输出值为剪切面的半径值。

进一步的,所述S222具体为:

S2221:所述剪切点的坐标和剪切面的夹角的计算方式如下:

管道两条切线的交点记为i+1,记交点向一个切点A延伸线方向为i,记交点向另一个切点B的延伸线方向为i+2,i+1到i的单位向量为n1,i+1到i+2的单位向量为n2;由此可得i+1-i和向量i+1-i+2的夹角α;

α=arccos(dx

dx

进而计算出O点、A点和B点的坐标;

S2222:所述剪切面的夹角计算方式如下:

由上述剪切点O点、A点和B点的坐标,进而得到两个剪切面方程:

r

其中

进一步的,所述相连接的两个三维管道模型;

若相连接的两个三维管道模型半径相同,则利用循环遍历的方法,将动态数组中含有三维管道模型接口圆的点连接,再通过旋转和平移将两个管道连接;

若两条管道半径大小不同,则通过旋转和平移,在靠近半径小的管道处插入一个圆台,圆台小半径一端与小管道的半径相同,圆台另一端与大管道半径相同且与大管道连接。

进一步的,所述旋转和平移所需参数计算方式如下:

记三维管道模型分别为向量

记向量C为a与b的向量积,即

进一步的,所述S2中:消隐处理包括隐藏线和隐藏面的消除。

进一步的,所述S3具体为:

基于第二三维管道模型,对三维管道模型的色彩进行渲染;

基于第二三维管道模型,对三维管道模型的状态进行渲染;

基于第二三维管道模型,对三维管道模型的材质进行设定。

一种基于面向对象编程的地下管道三维可视化系统,包括:

数据采集模块:用于采集管道数据;

消隐处理模块:基于所述管道数据进行三维建模生成第一三维管道模型,并对所述第一三维管道模型进行消隐处理,生成连接平滑的第二三维管道模型;

光照模型模块:对所述第二三维管道模型进行色彩渲染处理,生成第三三维管道模型;

投影变化模块:将所述第三三维管道模型映射到二维屏幕,生成二维平面投影;

关联场景模块:将所述二维平面投影关联到三维场景图形。

有益效果:本发明提供了一种基于面向对象编程的地下管道三维可视化系统及方法,具有如下有益技术效果:

(1)在管道建模时,对管道进行简化的基础上将管道进行抽象为管段和节点;管段采用剪切面来确定衔接方式,能够使衔接处较为平滑,切模型视觉效果较好;

(2)利用光照、材质和纹理进行渲染,提高了管道的真实感;

(3)可与GIS进行结合,为城市规划和管理提供能加强大的功能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是基于面向对象编程的地下管道三维可视化方法的流程框图;

图2是基于面向对象编程的地下管道三维可视化系统的流程框图;

图3是管道剪切示意图;

图4是矢量图。

具体实施方式

为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。当一个组件被认为是“设置在”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中设置的组件。

此外,术语“长”“短”“内”“外”等指示方位或位置关系为基于附图所展示的方位或者位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或原件必须具有此特定的方位、以特定的方位构造进行操作,以此不能理解为本发明的限制。

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

实施例

如图1所示,本发明提供一种基于面向对象编程的地下管道三维可视化方法,所述方法包括:

步骤S100:采集管道数据;对采集到的管道数据在EXCEL中进行简化,去掉较为次要的数据,在管道信息中留下管道名称、编号、坐标、管径等数据列,在ArcGIS中加入经过简化后的管道数据,并根据详细坐标赋予其投影坐标系。

步骤S200:基于所述管道数据进行三维建模生成第一三维管道模型,并对所述第一三维管道模型在衔接时的产生的多余部分进行消隐处理,生成连接平滑的第二三维管道模型;

在QT中,创建一个动态数组和相应的三维数组,并将动态数组的值与管道数据相连接,三维数组的值分别为管道中心值,半径值和管道长度;在QT中声明一个圆柱函数Cylinder来进行第一三维管道模型的函数构建,圆柱函数Cylinder的输入值为上述创建的一系列三维数组;利用剪切变换,通过剪切变换剪切掉管道衔接时多余的部分,使三维管道模型进行衔接,得到连接平滑的第二三维管道模型。

所述剪切变换的方法为:在QT中创建一个剪切函数Cut和剪切面函数CutSurface,剪切函数的输入值为两个第一三维管道模型,返回值为函数中创建的柱体函数;剪切面的函数输入为各个剪切点的坐标,两个剪切面之间的夹角,其输出为剪切面的半径值;切面函数的返回值为切点的坐标、剪切面的半径等参数。具体实施过程如下:

如图2所示,i+1到i的单位向量为n1,i+1到i+2的单位向量为n2。由此可得i+1-i和向量i+1-i+2的夹角α。

α=arccos(dx

其中:dx

从而推算出O点、A点和B点的坐标,进而得到两个剪切面的方程。

r

其中

如果衔接的两段管道,其半径相同,则在管道的衔接处构建一个圆环,其方法为创建一个Geometry节点和,利用Line直线函数,利用循环遍历,将存放在数组上的所有圆上的点连接起来;在构建完圆环后需要计算旋转和平移的参数,如下所示:

据图3所示,假设管道分别为向量

如图所示,向量C为a与b的向量积,

若两条相连接的第一三维管道模型半径不同,则在靠近半径小的管道处插入一个圆台,圆台小半径与小三维管道模型的半径相同,另一边与大三维管道模型半径相同;其操作流程如下:

首先创建一个圆台函数RoundTable,其输入值为两个管道的半径,返回值为空值;根据L5的步骤进行剪切,在Cut函数中输入的第二个值引用为圆台。

所述消隐处理用于增进图像的真实感和消除多义性,在现实过程中消除实体中被隐藏的部分;其中,所述消隐处理包括隐藏线和隐藏面的消除。

S300:对所述第二三维管道模型进行色彩渲染处理,生成第三三维管道模型;

对消隐处理后的第二三维管道模型,利用OSG引擎对第二三维管道模型形体进行渲染,便能得到地下管道的可视化效果,OSG也采用状态机制来对渲染状态进行管理;首先利用osg::StateSet来打开管道渲染状态,输入值为管道赋值的Node节点,并绑定纹理单元etAttributeAndModes将其状态改为ON;

利用OSG引擎对第二三维管道模型状态进行渲染,在定义环境光线前,创建一个变换矩阵osg::MatrixTransform,并利用SetMode函数对变换矩阵进行定义与状态设定,然后创建一个Light类来对环境光进行设定,其输入包含光线矩阵,光照类型等参数;

在有了光源之后,还需要设置管道材质的一些属性,从而提高第二三维管道模型材质的显示效果;首先利用OSG引擎创建一个材质类函数Material,然后利用SetDiffuse、setAmbient、setShininess来对材质函数进行赋值与定义,在赋值后,利用setMode函数来对材质进行最后的渲染,列如将纹理参数为GL_TEXTURE_GEN_Q等。

所述渲染处理用于产生明暗过度的真实感图形,光照模型模块描述了物体表面的颜色与其空间位置、朝向、物理属性的关系。

S400:将所述第三三维管道模型映射到二维屏幕,生成二维平面投影;在映射过程中,根据投影中心与投影平面之间距离的不同,投影可分为平行投影和透视投影;其中透视投影所显示的场景更为接近现实。

S500:将所述二维平面投影关联到三维场景图形;通过setAttributeAndMode和show类最后关联到场景图形,最终实现地下管道三维可视化。

一种基于面向对象编程的地下管道三维可视化系统,包括:

数据采集模块:用于采集管道数据;

消隐处理模块:基于所述管道数据进行三维建模生成第一三维管道模型,并对所述第一三维管道模型在衔接时的产生的多余部分进行消隐处理,生成连接平滑的第二三维管道模型;

光照模型模块:对所述第二三维管道模型进行色彩渲染处理,生成第三三维管道模型;

投影变化模块:将所述第三三维管道模型映射到二维屏幕,生成二维平面投影;

关联场景模块:将所述二维平面投影关联到三维场景图形。

由于基于面向对象编程的地下管道三维可视化系统的工作方式已经在上述基于面向对象编程的地下管道三维可视化方法中详述,在此不做赘述。

本实施例提供了一种基于面向对象编程的地下管道三维可视化系统及方法,实现了对管道的三维可视化,改变了管道显示停留在2维和2.5维带来的不能形象地表现管道之间的空间关系和没有直观视觉效果的缺陷。

至此,以说明和描述的目的提供上述实施例的描述。不意指穷举或者限制本公开。特定的实施例的单独元件或者特征通常不受到特定的实施例的限制,但是在适用时,即使没有具体地示出或者描述,其可以互换和用于选定的实施例。在许多方面,相同的元件或者特征也可以改变。这种变化不被认为是偏离本公开,并且所有的这种修改意指为包括在本公开的范围内。

提供示例实施例,从而本公开将变得透彻,并且将会完全地将该范围传达至本领域内技术人员。为了透彻理解本公开的实施例,阐明了众多细节,诸如特定零件、装置和方法的示例。显然,对于本领域内技术人员,不需要使用特定的细节,示例实施例可以以许多不同的形式实施,而且两者都不应当解释为限制本公开的范围。在某些示例实施例中,不对公知的工序、公知的装置结构和公知的技术进行详细地描述。

在此,仅为了描述特定的示例实施例的目的使用专业词汇,并且不是意指为限制的目的。除非上下文清楚地作出相反的表示,在此使用的单数形式“一个”和“该”可以意指为也包括复数形式。术语“包括”和“具有”是包括在内的意思,并且因此指定存在所声明的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或额外地具有一个或以上的其他特征、整体、步骤、操作、元件、组件和/或其组合。除非明确地指示了执行的次序,在此描述的该方法步骤、处理和操作不解释为一定需要按照所论述和示出的特定的次序执行。还应当理解的是,可以采用附加的或可选择的步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号