管线段边线拟合方法及装置与流程

文档序号:18059802发布日期:2019-07-03 03:00阅读:390来源:国知局
管线段边线拟合方法及装置与流程

本发明涉及地理信息数据处理技术领域,具体而言,涉及一种管线段边线拟合方法及装置。



背景技术:

目前,城市地下空间的重要性日趋凸显,为了加强城市地下空间地理信息的管理和应用,我国加快了城市地下空间数据的采集及标准化工作,因此,产生了大量的地下管线数据。地下管线数据中埋设方式采用沟道或管沟的管线数据采集及处理时有特殊要求,管道管线在数据外业采集时,采集的是管道的中心线,在数据处理及展示时,要求符合一定管道宽度的管沟边线按实际比例绘制。

现有技术中,对地下管沟边线管道数据按比例绘制边线时,只能按管道中线及管道宽度计算得到偏移线,进行逐段绘制,无法得到连续的管线段边线。



技术实现要素:

本发明的目的在于,针对上述现有技术中的不足,提供一种管线段边线拟合方法及装置,以解决地下管线管道数据按比例绘制边线时,只能按管道中线及管道宽度计算得到偏移线,进行逐段绘制,无法得到连续的管线段边线的问题。

为实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种管线段边线拟合方法,所述方法包括:获取符合预设条件的管线段信息,根据所述管线段信息得到构建对应的多叉树的所有节点和节点属性,根据所述多叉树的所有节点和节点属性,绘制管线段各管点连接而成的中线和偏移线,根据所述多叉树的所有节点和节点属性,得到多叉树的所有父节点和与所述父节点连接的子节点,确定多叉树的根节点和每个叶子节点,获取多叉树的根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图。

一种实施方式中,所述管线段信息包括:管线段各管点的管点坐标和管点编号,以及管线的起点编号、终点编号和管线宽度。

一种实施方式中,节点属性包括:本节点标识、父节点标识、与所述父节点连接对应的管线宽度和子节点列表。

一种实施方式中,所述根据所述管线段信息得到构建对应的多叉树的所有节点和节点属性的步骤,包括:根据所述管线段信息,获取管线段的管点中的端点以及所有管点间的连接关系,其中,所述管线段的管点中的端点为只有一个连通方向的管点,根据所获取的所述管线段的管点中的端点确定对应的多叉树,根据所述多叉树从所述管线段信息中构建所述多叉树的所有节点和节点属性。

一种实施方式中,所述根据所述多叉树的所有节点和所述节点属性,得到多叉树所有的父节点和与所述父节点连接的子节点,确定多叉树的根节点和每个叶子节点的步骤,包括:根据所述多叉树的所有节点和节点属性,得到多叉树所有的父节点和与所述父节点连接的子节点,若所述节点属性中父节点标识为空,以及与所述父节点连接对应的管线宽度为空,确定所述节点为所述多叉树的根节点,若所述节点属性中子节点列表为空,确定所述节点为所述多叉树的叶子节点。

一种实施方式中,所述获取所述多叉树的根节点与每个所述叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图的步骤,包括:获取多叉树的根节点与每个叶子节点之间的路径中所有的子节点和父节点的路径段及路径段中线,计算路径段两侧的偏移线,根据所述路径段两侧的偏移线均与所述路径段中线不相交原则,提取出与所述路径段中线不相交的两侧的偏移线,将提取后的所述路径段两侧的偏移线拟合,绘制所述管线段的边线图。

一种实施方式中,所述将提取后的所述路径段两侧的偏移线拟合,绘制所述管线段的边线图的步骤,包括:若提取后的所述路径段两侧的偏移线有不连续,则将不连续的偏移线连接,若提取后的所述路径段两侧的偏移线相交之后有过长的偏移线,则剔除所述过长的偏移线。

第二方面,本发明实施例还提供了一种管线段边线拟合装置,所述装置包括:构建模块、第一绘制模块、确定模块和第二绘制模块,所述构建模块用于,获取符合预设条件的管线段信息,根据所述管线段信息得到构建对应的多叉树的所有节点和节点属性,所述第一绘制模块用于,根据所述多叉树的所有节点和节点属性,绘制管线段各管点连接而成的中线和偏移线,所述确定模块用于,根据所述多叉树的所有节点和节点属性,得到多叉树的所有父节点和与所述父节点连接的子节点,确定多叉树的根节点和每个叶子节点,所述第二绘制模块用于,获取多叉树的根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图。

一种实施方式中,所述管线段信息包括:管线段各管点的管点坐标和管点编号,以及管线的起点编号、终点编号和管线宽度。

一种实施方式中,节点属性包括:本节点标识、父节点标识、与所述父节点连接对应的管线宽度和子节点列表。

一种实施方式中,所述构建模块具体用于,根据所述管线段信息,获取管线段的管点中的端点以及所有管点间的连接关系,其中,所述管线段的管点中的端点为只有一个连通方向的管点,根据所获取的所述管线段的管点中的端点确定对应的多叉树中,根据所述多叉树从所述管线段信息中构建所述多叉树的所有节点和节点属性。

一种实施方式中,所述确定模块具体用于,根据所述多叉树的所有节点和节点属性,得到多叉树所有的父节点和与所述父节点连接的子节点,若所述节点属性中父节点标识为空,以及与所述父节点连接对应的管线宽度为空,确定所述节点为所述多叉树的根节点,若所述节点属性中子节点列表为空,确定所述节点为所述多叉树的叶子点。

一种实施方式中,所述第二绘制模块具体用于,获取多叉树的根节点与每个叶子节点之间的路径中所有的子节点和父节点的路径段及路径段中线,计算路径段两侧的偏移线,根据所述路径段两侧的偏移线均与所述路径段中线不相交原则,提取出与所述路径段中线不相交的两侧的偏移线,将提取后的所述路径段两侧的偏移线拟合,绘制所述管线段的边线图。

一种实施方式中,所述第二绘制模块还用于,若提取后的所述路径段两侧的偏移线有不连续,则将不连续的偏移线连接,若提取后的所述路径段两侧的偏移线相交之后有过长的偏移线,则剔除所述过长的偏移线。

第三方面,本发明实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。

本发明的有益效果是:管线段边线拟合方法通过获取符合预设条件的管线段信息,根据管线段信息得到构建对应的多叉树的所有节点和节点属性,根据多叉树的所有节点和节点属性,绘制管线段各管点连接而成的中线和偏移线,根据多叉树的所有节点和节点属性,得到多叉树的所有父节点和与父节点连接的子节点,确定多叉树的根节点和每个叶子节点,获取多叉树的根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图,提高了管线边线拟合过程中的速度和精确度,从而生成连续的管线段边线,同时使得管线段边线图更加简洁,方便用户查看,提高了用户的便利性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请第一实施例提供的一种管线段边线拟合方法流程示意图;

图2为本申请第一实施例提供的一种构建多叉树节点属性的方法流程示意图;

图3为本申请第一实施例提供的一种绘制的管线段边线平面示意图;

图4为本申请第二实施例提供的一种管线段边线拟合装置结构示意图;

图5为本申请第三实施例提供的一种电子设备结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

需要说明的是,本发明所提供的实施例,可以是基于在专门设计的电子设备或计算机等装置上实现,通过将这些装置与服务器中的数据库连接,在需要绘制某些管线的连续边线时,通过这些装置获取数据库中的数据信息,即可绘制得到符合条件的管线段相对应的连续边线。

第一实施例

实际上,作业人员将由多条管线(管线:只有两端的两个管点,即管线段的最小单元)组成管线段(管线段:至少由两条管线组成,即相邻连接的两条管线的管点连接,形成管线段中的一个端点,此时,管线段有三个端点)的各种数据采集后保存在数据库中,本发明提供的方法,目的是为了将这种结构化的数据在人们使用时,更方便用户查看,生成可视化的图像,只需一台具有显示功能的装置即可,下述将介绍本发明实现这种目的的一种实现方式。

图1为本申请第一实施例提供的一种管线段边线拟合方法流程示意图,如图1所示,该方法包括:

s101、获取符合预设条件的管线段信息,根据管线段信息得到构建对应的多叉树的所有节点和节点属性。

具体的,上述所说的预设条件,可以是按照地区、管线类型、管线的埋设深度或管线宽度等信息划分的条件,当需要绘制某些管线段时,只需要按照实际情况,根据需要设定预设条件,比如,要绘制a地区、b类型、x×y埋设深度和管线宽度时,在预先存储的数据库中,筛选出符合预设条件的管线段,以及相应的管线段信息,根据得到的管线段信息,从而可以依次构建相对应多叉树的每个节点和节点的属性。

需要说明的是,上述数据库中的数据,可以是将各个地区的各个管线段相对应的所有数据均保存在一个表格中的数据或将各个地区的各个管线段相对应的所有数据分类保存在至少两个表格中的数据,还可以是采用其他形式存储的数据信息。

s102、根据多叉树的所有节点和节点属性,绘制管线段各管点连接而成的中线和偏移线。

具体的,构建的多叉树中所有节点和节点的属性,由于每个节点与管线段中的各管点一一对应,因此,可根据每个节点所对应的管点坐标信息,得到每个节点所对应的位置,以及每个节点与每个节点的连接关系,根据位置将每个节点和每个节点绘制出,并根据连接关系依次将节点连接,需要注意的是,相互连接的每两个节点之间只有一条直线,即管线段的中线,从而得到由多叉树中所有节点相连接形成的与实际管线段各管点连接而成的相对应的只有中线的线型图,再根据每条管线相对应的管线尺寸,在每条中线的两侧绘制管线段的偏移线。

s103、根据多叉树的所有节点和节点属性,得到多叉树的所有父节点和与父节点连接的子节点,确定多叉树的根节点和每个叶子节点。

具体的,根据上述获取的符合预设条件的管线段信息得到的管线段,即多条管线连接成管线段时,不一定所有的管线段都是完全连接的,因此,根据具体的管线段的连接关系,可以构建得到至少一个对应的多叉树,此时,根据每个多叉树中节点的属性,可以确定每个多叉树的根节点和叶子节点,进而得到每个多叉树中根节点到每个叶子节点之间的路径。

s104、获取多叉树的根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图。

具体的,以其中构建的一个多叉树为例,根据该多叉树的根节点与每个叶子节点之间的路径,可以得到该多叉树中任意两个节点之间的路径,可以是一个多叉树中父节点到子节点的路径,也可以是子节点到父节点的路径,从而根据每个节点中的属性计算每个子节点至父节点连接形成的偏移线,即都是从叶子节点或深度深的点递增,亦即本节点是下一点的子节点将计算后的偏移线分别进行拟合,即将所有节点在同侧生成的相邻偏移线进行拟合,在绘制管线段的边线图时,从而可得到连续的偏移线,即最终生成连续的管线段的边线。

需要说明的是,上述计算多叉树中每个子节点至父节点的偏移线,可以是根据具体情况,只需要绘制每个节点到节点之间形成的中线一侧的偏移线,或者运用同样的方式绘制出中线两侧的偏移线,即按照预设比例绘制出带有宽度的连续管线段边线图。

另外,在本发明中所说的连续只是在最终绘制出的管线段边线的线条默认设置为实线时的一种连续的现象,而实线还可以设置为虚线或其他的方式呈现,因此,在此不限定线条的类型。

下述以使用其中一种情况的路径绘制管线段边线为例进行说明,示例的:

若将管点a构建为父节点1,管点b构建为子节点2,管点b与管点a连接形成的管线宽度x记录在子节点2的属性中,则根据子节点2属性中记录的管线宽度x,根据管线宽度x计算并绘制子节点2到父节点1连接形成的中线两侧的偏移线,按照此规则,根据得到的每个父节点到子节点的路径,继续计算并绘制以父节点1为子节点时到该子节点1的父节点0的偏移线,直到所有节点到节点的偏移线绘制完成。

本实施例中,该方法通过获取符合预设条件的管线段信息,根据管线段信息得到构建对应的多叉树的所有节点和节点属性,根据多叉树的所有节点和节点属性,绘制管线段各管点连接而成的中线和偏移线,根据多叉树的所有节点和节点属性,得到多叉树的所有父节点和与父节点连接的子节点,确定多叉树的根节点和每个叶子节点,获取多叉树的根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图,提高了管线段边线拟合过程中的速度和精确度,从而生成连续的管线段边线,同时使得管线段边线图更加简洁,方便用户查看,提高了用户的便利性。

下述以一种实施方式为例,进行说明管线段边线拟合的实现过程。

一种实施方式中,管线段信息包括:管线段各管点的管点坐标和管点编号,以及管线的起点编号、终点编号和管线宽度。

具体的,根据预设条件获取符合绘制管线段边线的拟合的数据库信息中管线段信息,例如:表示管线段中各管点的管点坐标和管点编号,还有表示每条管线的起点编号、终点编号和管线宽度,其起点编号和终点编号也就是由多条管线组合连接形成管线段时连接处的管点编号,由起点编号和终点编号即可得到管线段的连接关系,而管线宽度表示每条管线实际的宽度,绘制时,只需要根据设计的比例,将其管线宽度按照相应的比例绘制,再将绘制的边线按照预设的规则进行拟合,最终生成管线段的边线。

一种实施方式中,节点属性包括:本节点标识、父节点标识、与父节点连接对应的管线宽度和子节点列表。

具体的,多叉树中的节点属性,都是根据管线段信息以及管线段的连接关系得到的,因此,将每个节点添加属性,包括:本节点标识、父节点标识、与父节点连接的管线宽度和子节点列表的标识,实际上根据每个节点与管点相对应的关系,假如每个节点的标识都是在构建多叉树时所使用的索引,则根据每个节点的索引相对应的管点,而根据每个管点的位置信息即可得到每个节点相对应的位置。

图2为本申请第一实施例提供的一种构建多叉树节点属性的方法流程示意图,如图2所示。

一种实施方式中,根据管线段信息得到构建对应的多叉树的所有节点和节点属性的步骤,包括:

s201、根据管线段信息,获取管线段的管点中的端点以及所有管点间的连接关系,其中,管线段的管点中的端点为只有一个连通方向的管点。

具体的,分析管线段的管线信息,当其中一条管线的终点编号与另一条管线的起点编号相同时,说明这两条管线是连接的,因此,根据管线的起点编号和终点编号即可得到所有管线的连接关系,即管线段中各管点的连接关系,进而分析管线段中各管点与其连接的另一管点的连通方向,当某个管点只有一个连通方向时,说明该管点即为管线段的端点,所有这种管点均为管线段的端点。

s202、根据所获取的管线段的管点中的端点确定对应的多叉树。

具体的,将所有管线的端点按照算法中遍历的顺序,依次构建以此端点为多叉树根节点的多叉树,实际在一个多叉树中,至少含有两个管线段的端点,为描述方便,下述示例中省略根节点与叶子节点之间的其他节点,例如:在获取的所有管线段的各个端点中,按照算法遍历时各端点出现的顺序,分别根据01、02、03和04的索引进行记录,构建以第一个端点01为根节点的多叉树a,根据管线段的连接关系,而另一个端点03成为该多叉树a的叶子节点,再以端点索引的顺序构建02为根节点的多叉树b,根据管线段的连接关系,而另一个端点04成为该多叉树b的叶子节点,再以端点索引的顺序构建03为根节点的多叉树c,由于算法判断此端点03已成为多叉树a的叶子节点,此时,不再构建以此端点03为根节点的多叉树,根据该规则,依次构建之后的多叉树,最终得到至少一个多叉树的根节点,而每个多叉树也至少含有一个叶子节点,从而得到管线段中所有端点所对应的多叉树。

s203、根据多叉树从管线段信息中构建多叉树的所有节点和节点属性。

具体的,根据上述构建多叉树的方法,进而按照管线段信息构建每个多叉树中所有节点和节点的属性,即可根据管线段信息中每条管线的起点编号、终点编号和管线宽度,从而得到每个多叉树中所有节点与节点的属性,示例的:将上述得到多叉树的一个节点视为父节点,将该父节点对应的管点的管点编号构建为该父节点的本节点标识,将与该父节点连接的子节点对应的管点的管点编号依次构建为本节点的子节点列表,即子节点标识对应的列表,将上述得到多叉树的一个节点视为子节点,将该子节点对应的管点的管点编号构建为该子节点的本节点标识,将与该子节点连接的父节点对应的管点的管点编号构建为本节点的父节点标识,将与该子节点连接的父节点对应的管线的管线宽度构建为该子节点与连接的父节点的管线宽度,从而得到多叉树的所有节点和节点属性。

下述以一种示例的情况为例进行说明根据管线段信息构建一个根节点对应的多叉树的所有节点和节点属性,示例的:

将此根节点属性中的本节点标识记为01,由于根节点01没有父节点,所以根节点01属性中父节点标识为空,以及与父节点连接的管线宽度为空,由于根节点01对应的管点编号1连接的管点有2,因此根节点01的子节点列表为管点编号2对应的管点的节点标识,将其记为02,继续构建节点02的属性,此时节点02的父节点标识为01,与父节点01连接的管线宽度为x,由于此节点02对应的管点编号2连接的管点有4和7,因此,节点02的子节点列表为管点编号4和7对应的管点的节点标识,将其分别记为03和04,继续构建节点03的属性,直到最后构建到叶子节点时,此时叶子节点n的父节点标识为n-1,与父节点n-1连接的管线宽度为xn,由于此节点n对应的管点编号y没有连接的管点,因此,节点n的子节点列表为空。

一种实施方式中,根据多叉树的所有节点和节点属性,得到多叉树所有的父节点和与父节点连接的子节点,确定多叉树的根节点和每个叶子节点的步骤,包括:根据多叉树的所有节点和节点属性,得到多叉树所有的父节点和与所述父节点连接的子节点,若节点属性中父节点标识为空,以及与父节点连接对应的管线宽度为空,确定节点为多叉树的根节点,若节点属性中子节点列表为空,确定节点为多叉树的叶子节点。

具体的,在上述已经将其管线段信息构建为多叉树中节点的属性时,由于多叉树的每个根节点属性包括:本节点标识、父节点标识、与父节点连接的管线宽度和子节点列表,由此可知,当多叉树中一个节点属性中没有包含父节点标识和与父节点连接的管线宽度时,说明该节点是多叉树中的根节点,同时,当多叉树中一个节点属性中没有包含子节点列表时,说明该节点是多叉树中的叶子节点。

一种实施方式中,获取多叉树的根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图的步骤,包括:获取多叉树的根节点与每个叶子节点之间的路径中所有的子节点和父节点的路径段及路径段中线,计算路径段两侧的偏移线,根据路径段两侧的偏移线均与路径段中线不相交原则,提取出与路径段中线不相交的两侧的偏移线,将提取后的路径段两侧的偏移线拟合,绘制管线段的边线图。

具体的,根据构建的每个多叉树中对应的根节点与每个叶子节点之间的路径,可得到所有节点至节点的路径,例如:得到每个多叉树中所有的子节点和父节点的路径段,该路径段可视为绘制的图形中显示的中线,从而计算每个多叉树中每个子节点至父节点形成的路径段两侧的偏移线,此时,由可能会出现偏移线与中线相交的情况,示例的:假如在绘制节点03-02-01相连接的路径两侧的偏移线时,有可能节点02还连接有节点04,此时导致路径03-02-01与节点04相邻的一侧的偏移线与节点02-04之间形成的中线相交,此时,将相交之后的这条偏移线删除,可在绘制路径04-02-03的路径时,补全此处的偏移线,同时将同侧相邻的偏移线拟合成连续的偏移线,从而得到连续的管线段边线图。

一种实现方式中,将提取后的路径段两侧的偏移线拟合,绘制管线段的边线图的步骤,包括:若提取后的路径段两侧的偏移线有不连续,则将不连续的偏移线连接,若提取后的路径段两侧的偏移线相交之后有过长的偏移线,则剔除过长的偏移线。

具体的,每两个节点连接生成的路径段两侧,即每两个节点连接生成的图示中的中线两侧均生成一条偏移线,两侧的偏移线与对应的中线均平行且距离相等,由于每个节点所对应的管点的位置不同且每条管线的管线宽度的影响,导致生成的每侧的相互连接的偏移线会出现相交之后导致出现多余的线条,或者无法相交的现象,即不连续的现象,此时,将每侧相互连接的两条偏移线相交处多余的部分删除,即过长的部分删除,并且将每侧相互连接的两条偏移线不连续的连接起来,直至连续即可,从而得到连续的管线段边线。

图3为本申请第一实施例提供的一种绘制的管线段边线平面示意图,如图3所示,下述以具体的实施例为例进行说明实现某个符合绘制条件的管线段边线拟合的过程的步骤,示例的:

第一,通过设定预设条件,比如,设置预设条件为测区编号(表示特定地区)和管线类别(表示特定管线段),进行筛选数据库中符合预设条件的管线段信息,由此得到符合预设条件的下述表一和表二的数据,表一为本实施例提供的一个管线数据表,表二为本实施例提供的一个管线对应的管点数据表。在实际应用中,对于数据库中存储数据的方式,可以根据具体的情况设置所要存储的方式,例如:表一和表二所示的方式或用多个表格存储;表一和表二中各种数据的单位选择,可以根据本领域技术通用的标准选择所要设置的单位,下述举例的各个数据的单位都是以本领域的通用标准为主,因此不在具体表述;预设条件也可以是管线段信息中的任意一种或多种的组合,管线段信息还可以是管线高度、测量方式和测量人员等。在本实施例中,只是示意性的表示一种可实现的方案,并不是限定实现本申请所提供的管线段边线拟合的方法的唯一途径或方式等,因此,对其他情况不在进行详细描述。

表一

表二

需要说明的是,由于管线对应的管点数据表与管线数据表相对应,即表一中的起点编号和终点编号表示了表二中每个管点编号(一个管点编号对应一个管点)的连接关系,从而得到与实际管线段中相应的每个管点与管点的连接关系。

第二,从上述表中可得到由每两个相邻管点连接成多条管线组成管线段的以下几条路径:

(1)33ys2081-33ys2082-33ys2094-33ys2095-33ys2096-33ys4111;

(2)33ys2082-33ys2097;

(3)33ys2089-33ys2086-33ys2097。

第四,分析三条路径的管点,为将其构建为多叉树,那么,分析上述三条路径中每个管点的连通方向,即每个管点连接的其他相邻管点的数量,获取管线段的端点,可知,其中管点编号为33ys2081、33ys4111和33ys2089的管点相邻连接的管点为一个,因此这三个管点编号对应的管点为本实施例中管线段的端点,由于在实际算法中,获取这三个端点时得到的管点编号时使用的是相应的索引,因此,假设得到的第一个管点编号33ys2081对应的索引为01,第二个管点编号33ys4111对应的索引为02,第三个管点编号33ys2089对应的索引为03,最终获得索引01对应的管点编号33ys2081为根节点的多叉树,再根据上述路径的连接关系,构建相应多叉树中每个节点的属性。

第五,将此根节点属性中的本节点标识记为1,由于根节点1没有父节点,所以根节点1属性中父节点标识为空,以及与父节点连接的管线宽度为空,由于根节点对应的管点编号33ys2081连接的管点有33ys2082,因此根节点1的子节点列表为管点编号33ys2082对应的管点的节点标识,将其记为2,继续构建节点2的属性,此时节点2的父节点标识为1,与父节点连接的管线宽度为1800×600,由于此节点2对应的管点编号33ys2082连接的管点有33ys2094和33ys2097,因此,节点2的子节点列表为管点编号33ys2094和33ys2097对应的管点的节点标识,将其分别记为3和4,继续构建节点3的属性,此时节点3的父节点标识为2,与父节点连接的管线宽度为1800×600,由于此节点3对应的管点编号33ys2094连接的管点有33ys2095,因此,节点3的子节点列表为管点编号33ys2095对应的管点的节点标识,将其记为5,继续构建节点5的属性,直到最后构建到叶子节点时,此时叶子节点7的父节点标识为6,与父节点6连接的管线宽度为1800×600,由于此节点7对应的管点编号33ys4111没有连接的管点,因此,节点7的子节点列表为空,同理,管点编号33ys2089对应叶子节点9的子节点列表为空。

根据上述方法依次将所有管点对应的多叉树每个节点的属性构建结束,将其整理即可得到如下多叉树节点属性构成的数据:1(1002),2(211800×60034),3(321800×6005),4(421200×8008),5(531800×6006),8(841850×6009),6(651800×6007),9(981850×6000),7(761800×6000)。

第三,根据每个节点对应的管点坐标(表二中x坐标和y坐标),绘制出相应的管点的位置,根据管点所在的位置和管线的连接关系,将每个管点相连接的坐标位置连接起来,得到相应的管线段的中线。

第四,根据构建的多叉树节点的属性,以及多叉树中每个节点与每个节点的路径,可以得到多叉树中根节点到叶子节、叶子节点到根节点或叶子节点到叶子节点的路径,根据得到的路径,绘制管线段的边线,即每个节点到每个节点的偏移线,示例的:绘制叶子节点7到根节点1之间的偏移线,按照多叉树节点属性中子节点到父节点的管线宽度,分别绘制叶子节点7和9到根节点1的两条路径7-6-5-3-2-1和9-8-4-2-1所对应的管线两侧的偏移线。

首先在绘制路径7-6-5-3-2-1时,每相邻两个节点生成的中线两侧均生成一条偏移线,两侧的偏移线与对应的中线均平行且距离相等,由于每个节点所对应的管点的位置不同且每条管线的管线宽度的影响,导致生成的每侧的偏移线会出现相交或不连续的现象,此时,将同侧相邻两条偏移线相交处多余的偏移线删除,并且将同侧相邻两条偏移线不连续的延长,直至连续即可,此外,在绘制节点3-2-1两侧的偏移线时,由于与节点2还连接有节点4,此时导致节点3-2-1与节点4相邻的一侧的偏移线与节点2-4之间形成的中线相交,此时,将相交之后的这条偏移线删除,可在绘制路径9-8-4-2-1形成的中线两侧的偏移线时,补全此处的偏移线,绘制的方法与上述绘制路径7-6-5-3-2-1时的方法类似,在此不再一一描述,最后形成如如所示的连续的管线偏移线图。

需要注意的是,为说明由于表格中数据存储的方式错误或者其他情况,但是该数据又需要呈现在最终绘制的管线段边线图中时,可根据预设的绘制条件设置相应的处理方式,下述将以一种绘制方式为例进行说明,示例的:上述表一中的起点编号33ys2088到终点编号33ys2087对应的管线的断面尺寸因为存在数据格式上的错误,像这种情况,由于这种情况也符合管线段边线绘制的预设条件,因此,可以根据该条管线对应的管点形成的连接关系,只绘制该条管线对应的中线即可,若还有类似情况,也可根据类似的方法处理,在此将不再详细赘述。

第二实施例

图4为本申请第二实施例提供的一种管线段边线拟合装置的结构示意图,如图4所示,该管线段边线拟合装置包括:构建模块10、第一绘制模块20、确定模块30和第二绘制模块40。

构建模块10用于,获取符合预设条件的管线段信息,根据管线段信息得到构建对应的多叉树的所有节点和节点属性,第一绘制模块20用于,根据多叉树的所有节点和节点属性,绘制管线段各管点连接而成的中线和偏移线,确定模块30用于,根据多叉树的所有节点和节点属性,得到多叉树的所有父节点和与父节点连接的子节点,确定多叉树的根节点和每个叶子节点,第二绘制模块40用于,根据根节点与每个叶子节点之间的路径,计算多叉树的根节点至每个叶子节点的偏移线,将计算后的偏移线拟合,绘制管线段的边线图。

一种实施方式中,管线段信息包括:管线段各管点的管点坐标和管点编号,以及管线的起点编号、终点编号和管线宽度。

一种实施方式中,节点属性包括:本节点标识、父节点标识、与父节点连接对应的管线宽度和子节点列表。

一种实施方式中,构建模块10具体用于,根据管线段信息,获取管线段的管点中的端点以及所有管点间的连接关系,其中,管线段的管点中的端点为只有一个连通方向的管点,根据所获取的管线段的管点中的端点确定对应的多叉树,根据多叉树从管线段信息中构建多叉树的所有节点和节点属性。

一种实施方式中,确定模块30具体用于,根据多叉树的所有节点和节点属性得到多叉树所有的父节点和与父节点连接的子节点,若节点属性中父节点标识为空,以及与父节点连接对应的管线宽度为空,确定节点为多叉树的根节点,若节点属性中子节点列表为空,确定节点为多叉树的叶子节点。

一种实施方式中,第二绘制模块40具体用于,获取多叉树的根节点与每个叶子节点之间的路径中所有的子节点和父节点的路径段及路径段中线,计算路径段两侧的偏移线,根据路径段两侧的偏移线均与路径段中线不相交原则,提取出与路径段中线不相交的两侧的偏移线,将提取后的路径段两侧的偏移线拟合,绘制管线段的边线图。

一种实施方式中,第二绘制模块40还用于,若提取后的路径段两侧的偏移线有不连续,则将不连续的偏移线连接,若提取后的路径段两侧的偏移线相交之后有过长的偏移线,则剔除过长的偏移线。

本实施例中,上述装置用于执行前述第一实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。

第三实施例

图5为本申请第三实施例提供的一种电子设备结构示意图,如图5所示,该设备包括:存储器50和处理器60。

需要说明的是,本实施例提供的电子设备也可以是集成在处理终端或者是处理终端上的芯片等。

存储器50用于存储程序,处理器60调用存储器50存储的程序,以执行上述提供的方法实施例,具体实现方式和技术效果类似,这里不再赘述。

可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1