本发明涉及计算机辅助设计,具体涉及一种填充图元的中心线构造方法、系统、电子设备和存储介质。
背景技术:
1、在建筑行业,建设方需要基于设计院给出的设计图纸进行施工。由于设计院的dwg图纸是保密的,因此,建设方拿到的图纸通常是pdf图纸。pdf图纸是由dwg图纸导出生成的图纸。在dwg图纸中,线条是有宽度的。在将宽度超过宽度阈值的线条导出到pdf图纸中时,这些线条会被转换为使用实体填充的线条,这样,线条的数据会丢失,导致无法确定线条的中心线,影响后续的基于中心线的识别操作(比如基于中心线的路基横断面识别)。鉴于此,一些解决方法是重新在pdf图纸中构造线条的中心线后,再进行后续的识别操作。
2、目前,一些制图软件缺乏自动构造中心线的能力,依赖于人工在pdf图纸中构造中心线。这种方式的工作量较大,效率低。
技术实现思路
1、有鉴于此,本发明实施方式提供了一种填充图元的中心线构造方法、中心线构造系统、电子设备和计算机可读存储介质,可以提高中心线的构造效率。
2、本发明一方面提供了一种填充图元的中心线构造方法,填充图元由三边形实体填充,所述方法包括:
3、对于任一所述三边形实体,将所述三边形实体各条边的中点作为顶点,以及将所述中点两两相连得到的连线作为边,构建第一有向图;
4、在所述第一有向图的顶点中,剔除中心线区域之外的无需用于构造中心线的无效顶点和所述无效顶点连接的边,得到第二有向图;
5、在所述第二有向图的顶点中,从出度为1的第一顶点开始,沿中心线方向搜索用于构造中心线的中心线顶点,所述中心线方向表征从所述第一顶点指出的边的方向;
6、基于所述中心线顶点,构造所述填充图元的中心线。
7、在本技术一些实施例的技术方案中,对于由三边形实体填充的填充图元来说,将三边形实体各条边的中点作为顶点,以及将中点之间的连线作为边,可以构造得到第一有向图。在第一有向图中剔除无效顶点和无效顶点连接的边后,可以构建得到第二有向图。在第二有向图中可以搜索得到中心线顶点。基于中心线顶点,可以构造得到填充图元的中心线。如此,可以实现中心线的自动构造,解决了人工构建中心线时的效率低下问题,提高了中心线的构造效率。
8、在一些实施例中,所述在所述第二有向图的顶点中,从出度为1的第一顶点开始,沿中心线方向搜索用于构造中心线的中心线顶点,包括:
9、将所述第一顶点作为搜索到的第一个中心线顶点,从所述第一个中心线顶点开始,执行如下的搜索操作:
10、获取第k个中心线顶点在所述中心线方向上连接的第一边;
11、将所述第k个中心线顶点通过所述第一边连接的顶点,作为第k+1个中心线顶点,其中,k的取值为大于或等于1的整数。
12、这种逐次查找中心线顶点的方式,可以避免中心线顶点的遗漏,保证搜索到的中心线顶点的准确度。
13、在一些实施例中,若所述第k个中心线顶点在所述中心线方向上连接多条第一边,所述将所述第k个中心线顶点通过所述第一边连接的顶点,作为第k+1个中心线顶点,包括:
14、获取第k-1个中心线顶点与所述第k个中心线顶点之间的处于中心线方向上的第二边;
15、在所述第k个中心线顶点连接的多条第一边中,确定与所述第二边呈最小夹角的目标第一边;
16、将所述第k个中心线顶点通过所述目标第一边连接的顶点,作为第k+1个中心线顶点。
17、如此,在第k个中心线顶点连接多条第一边时,可以搜素到满足业务所需的中心线顶点,实用性更强。
18、在一些实施例中,在搜索到所述第k+1个中心线顶点后,所述方法还包括:
19、若前k个中心线顶点中,存在与所述第k+1个中心线顶点相同的顶点,停止中心线顶点的搜索,并将前k个中心线顶点作为沿所述中心线方向搜索到的中心线顶点。
20、如此,可以避免第二有向图中存在闭合的环,导致重复搜索的问题。
21、在一些实施例中,所述在所述第一有向图的顶点中,剔除中心线区域之外的无需用于构造中心线的无效顶点和所述无效顶点连接的边,包括:
22、在所述第一有向图中,剔除度小于或等于预设度的初始顶点和所述初始顶点连接的边;
23、在完成初始顶点剔除后的所述第一有向图中,搜索出度为1的第二顶点;
24、在剔除的所述初始顶点中,确定在中心线方向上与所述第二顶点相连的第三顶点;
25、将所述第三顶点和所述第三顶点连接的边恢复至所述第一有向图,以将所述第三顶点之外的其它初始顶点作为所述无效顶点进行剔除。
26、在剔除初始顶点和初始顶点连接的边后,再在剔除的初始顶点中,将在中心线方向上与第二顶点相连的第三顶点和第三顶点的边恢复至第一有向图,可以防止中心线端点被误剔,保证构造的中心线长度与中心线实际长度相同,提高了中心线的构造精度。
27、在一些实施例中,所述在剔除的所述初始顶点中,确定与所述第二顶点相连的第三顶点,包括:
28、对于所述初始顶点中的任一目标初始顶点,确定所述目标初始顶点与所述第三顶点之间的第一连线;
29、若所述第一连线与所述第二顶点在所述中心线方向上连接的边共线,确定所述目标初始顶点为所述第三顶点。
30、通过判断目标初始顶点与第三顶点之间的第一连线,与第二顶点在中心线方向上连接的边是否共线,来判断目标初始顶点是否为第三顶点,误差较小,判断结果较为准确。
31、在一些实施例中,所述基于所述中心线顶点,构造所述填充图元的中心线,包括:
32、将各个所述中心线顶点在所述中心线方向上的边所构成的线段,作为所述填充图元的中心线。
33、如此,可以无需在相邻的中心线顶点之间重新构造连线,减少数据处理量。
34、在一些实施例中,在得到所述填充图元的中心线后,所述方法还包括:
35、构建各个所述中心线顶点的包围盒;
36、若第一包围盒与第二包围盒之间的距离小于距离阈值,将所述第一包围盒中的第一中心线顶点,与所述第二包围盒中的第二中心线顶点连通。
37、如此,可以在构造得到的中心线中,将中心线的缺口位置拉通,形成完整的中心线。
38、本发明另一方面还提供了一种填充图元的中心线构造系统,填充图元由三边形实体填充,所述系统包括:
39、图构建模块,用于对于任一所述三边形实体,将所述三边形实体各条边的中点作为顶点,以及将所述中点两两相连得到的连线作为边,构建第一有向图;
40、图优化模块,用于在所述第一有向图的顶点中,剔除中心线区域之外的无需用于构造中心线的无效顶点和所述无效顶点连接的边,得到第二有向图;
41、顶点搜索模块,用于在所述第二有向图的顶点中,从出度为1的第一顶点开始,沿中心线方向搜索用于构造中心线的中心线顶点,所述中心线方向表征从所述第一顶点指出的边的方向;
42、中心线构建模块,用于基于所述中心线顶点,构造所述填充图元的中心线。
43、本发明另一方面还提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如上所述的方法。
44、本发明另一方面还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现如上所述的方法。