CN114186315A - 生成建筑简模的方法、装置、计算机设备和可读存储介质 - Google Patents
生成建筑简模的方法、装置、计算机设备和可读存储介质 Download PDFInfo
- Publication number
- CN114186315A CN114186315A CN202111522183.XA CN202111522183A CN114186315A CN 114186315 A CN114186315 A CN 114186315A CN 202111522183 A CN202111522183 A CN 202111522183A CN 114186315 A CN114186315 A CN 114186315A
- Authority
- CN
- China
- Prior art keywords
- outer contour
- contour line
- target
- building
- end point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/12—Symbolic schematics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/20—Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Civil Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Architecture (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种生成建筑简模的方法,所述方法包括:获取待生成建筑简模的目标建筑模型;将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面;根据每个轮廓线集合确定一目标外轮廓线集合;根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。本发明还公开了一种生成建筑简模的装置、一种计算机设备和一种计算机可读存储介质。
Description
技术领域
本发明涉及计算机辅助设计技术领域,具体涉及一种生成建筑简模的方法、装置、计算机设备和计算机可读存储介质。
背景技术
在CIM(City Information Modeling,城市信息模型)模型中,建筑模型是非常重要的组成部分。CIM模型体量一般比较大,包含较多的建筑模型,因此一般在显示城市级模型时采用建筑简模来代表完整的建筑模型。
现有技术中,有一些手动生成建筑简模的方法,比如:采用3DS Max软件建立建筑简模、采用SketchUp软件建立建筑简模、采用Shape格式文件描述建筑模型的外轮廓并通过拉伸算法生成建筑简模。但是随着BIM(Building Information Modeling)的发展,很多项目都交付BIM模型,若是手动生成BIM的建筑简模,工作量巨大,并且BIM模型构件比较多,比如常见的中等规模的商业综合体有超过四十万的构件,因此BIM模型无法直接在CIM系统中呈现,对BIM模型进行简化势在必行。一些相关技术中提出了自动生成BIM建筑简模的方法,比如:通过ReMesh方法对BIM模型重采样后重新生成Mesh网格以获得BIM建筑简模、通过Shape轮廓拉伸生成建筑的外轮廓以获取BIM建筑简模。
然而发明人在研究的过程中发现:现有技术中通过ReMesh方法生成的BIM建筑简模,三角形数目比较多,比如对一栋普通住宅楼,一般有超过一万多的三角形面片才能表达,导致CIM模型整体性能较差;使用Shape轮廓拉伸生成的BIM建筑简模,只能描述简单的规则的建筑模型,不能很好的还原上下轮廓不一样的建筑模型,普适性较差。
因此,在利用已有的建筑模型自动生成建筑简模时,如何在降低三角形数量的同时提高方案的普适性成为亟待解决的技术问题。
发明内容
本发明的目的在于提供一种生成建筑简模的方法、装置、计算机设备和计算机可读存储介质,能够在利用已有的建筑模型自动生成建筑简模时,实现在降低三角形数量的同时提高方案的普适性的技术效果。
本发明的一个方面提供了一种获取待生成建筑简模的目标建筑模型;将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面;根据每个轮廓线集合确定一目标外轮廓线集合;根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。
可选地,所述将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,包括:步骤A1,在所述目标建筑模型的上顶面处构建一横向平面,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第1个轮廓线集合;步骤A2,将所述构建的横向平面第i次垂直向下移动距离d,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第i+1个轮廓线集合;其中,d小于所述目标建筑模型的建筑高度,i是初始值为1的整数;步骤A3,判断(i+1)*d是否大于等于所述目标建筑模型的建筑高度,若是执行步骤A4,若否将i赋值为i+1并返回执行步骤A2;步骤A4,将所述构建的横向平面垂直向下移动至所述目标建筑模型的下底面处,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第N+1个轮廓线集合。
可选地,所述根据每个轮廓线集合确定一目标外轮廓线集合,包括:剔除所述轮廓线集合中的内轮廓线,获得初始外轮廓线集合;将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合,其中,依次将所述中间外轮廓线集合中的外轮廓线首尾相连可形成一个闭环;合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合。
可选地,所述将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合,包括:从所述初始外轮廓线集合中随机提取一条外轮廓线作为第一外轮廓线;新建集合S,并将所述第一外轮廓线添加至所述集合S中;在所述初始外轮廓线集合中查找与所述第一外轮廓线的终点距离最近的另一条外轮廓线,并判断查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点是否为所述查找到的外轮廓线的起点;若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线;继续在所述初始外轮廓线集合中查找与所述新的第一外轮廓线的终点距离最近的另一条外轮廓线,直至本次查找到的外轮廓线为第一次提取的外轮廓线;当本次查找到的外轮廓线为第一次提取的外轮廓线时,将当前的集合S作为所述中间外轮廓线集合,其中,所述中间外轮廓线集合中各个外轮廓线的排列顺序为当前的集合S中各个外轮廓线的添加顺序。
可选地,所述若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线,包括:若是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;若一致,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,将修改后的外轮廓线添加至所述集合S中,并将所述修改后的外轮廓线作为新的第一外轮廓线。
可选地,所述若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线,包括:若不是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;若一致,互换所述查找到的外轮廓线的起点和终点,将所述互换后的外轮廓线添加至所述集合S中,并将互换后的外轮廓线作为新的第一外轮廓线;若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,互换修改后的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线。
可选地,所述合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合,包括:步骤B1,从所述中间外轮廓线集合中提取第一条外轮廓线作为第二外轮廓线,并判断所述第二外轮廓线的长度是否小于预设阈值,若是执行步骤B2,若否执行步骤B3;步骤B2,将所述中间外轮廓线集合中的第二条外轮廓线的起点的值修改为所述第二外轮廓线的起点的值,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;步骤B3,新建集合K,将所述第二外轮廓线添加至集合K中,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;步骤B4,从所述新的中间外轮廓线集合中提取第一条外轮廓线作为新的第二外轮廓线,并判断所述新的第二外轮廓线的长度是否小于预设阈值,若是执行步骤B5,若否执行步骤B6;步骤B5,将所述新的中间外轮廓线集合中的第二条外轮廓线的起点的值修改为最近一次添加至所述集合K中的外轮廓线的终点的值,并执行步骤B9;步骤B6,判断所述新的第二外轮廓线的斜率与最近一次添加至所述集合K中的外轮廓线的斜率是否一致,若是执行步骤B7,若否执行步骤B8;步骤B7,将最近一次添加至所述集合K中的外轮廓线的终点的值修改为所述新的第二外轮廓线的终点的值,并执行步骤B9;步骤B8,将所述新的第二外轮廓线添加至所述集合K中,并执行步骤B9;步骤B9,从所述新的中间外轮廓线集合中剔除所述新的第二外轮廓线,再次获得新的中间外轮廓线集合,并返回执行步骤B4,直至剔除中间外轮廓线集合中的所有外轮廓线;步骤B10,当剔除中间外轮廓线集合中的所有外轮廓线时,将当前的集合K作为所述目标外轮廓线集合。
可选地,所述根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模,包括:将N+1个目标外轮廓线集合中每两个相邻的目标外轮廓线集合进行放样计算,获得N个子建筑模型的侧面区域,其中,每个侧面区域由三角形网格构成;将第1个侧面区域的上顶面划分为三角形网格,并将第N个侧面区域的下底面划分为三角形网格;拼接当前的N个侧面区域,获得所述目标建筑模型的建筑简模。
本发明的另一个方面提供了一种生成建筑简模的装置,所述装置包括:第一获取模块,用于获取待生成建筑简模的目标建筑模型;第二获取模块,用于将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面;确定模块,用于根据每个轮廓线集合确定一目标外轮廓线集合;生成模块,用于根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。
本发明的再一个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的生成建筑简模的方法。
本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的生成建筑简模的方法。
本发明采用基于目标建筑模型截面轮廓线放样的方法,自动生成目标建筑模型的建筑简模,保留了目标建筑模型的外形特征,相比ReMesh方法具有数据量小的特点,相比Shape轮廓拉伸能够保留建筑的外形特征,普适性较强。在CIM中的应用中,采用本方法可以最大程度上重用目标建筑模型,避免了手工简模的人工操作,节省了人力物力,在利用已有的建筑模型自动生成建筑简模时,本发明能够在降低三角形数量的同时提高方案的普适性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了实施例一中生成建筑简模的方法的流程图;
图2示出了实施例一中放样计算的示意图;
图3示出了实施例一中生成子建筑模型的侧面区域的示意图;
图4示出了实施例一中将填充三角形网格的示意图;
图5示出了实施例一中生成建筑简模的方案的具体逻辑图;
图6示出了实施例二中生成建筑简模的装置的框图;
图7示出了实施例三提供的适于实现生成建筑简模的方法的计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
实施例一
图1示出了实施例一中生成建筑简模的方法的流程图,如图1所示,该方法包括步骤S1~步骤S4,其中:
步骤S1,获取待生成建筑简模的目标建筑模型。
目标建筑模型为三维以上的建筑模型,如BIM模型。
步骤S2,将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面。
轮廓线集合中包括对应目标横向平面上的所有构件的轮廓线,轮廓线包括内轮廓线和外轮廓线,内轮廓线为位于目标横向平面内部的线段,外轮廓线为构成目标横向平面边沿的线段。
每两个相邻的子建筑模型中具有一个相同的横向平面,当先获取其中一个子建筑模型的该横向平面的轮廓线集合时,便不会再获取另一个子建筑模型的该横向平面的轮廓线集合。
比如,沿着目标建筑模型的上顶面到下底面的方向,将依次横向切割目标建筑目标,获得多个子建筑模型,第一个子建筑模型包括目标建筑模型的上顶面(上顶面是一个横向平面),最后一个子建筑模型包括目标建筑模型的下底面(下底面也是一个横向平面),第一个子建筑模型和第二子建筑模型具有一个相同的横向平面,当已经获取了的第一个子建筑模型的两个横向平面的轮廓线集合时,便不会再获取第二个子建筑模型中与第一个子建筑相同的这个横向平面的轮廓线集合,以此类推。若将目标建筑模型横向切割为N个子建筑模型,则必然存在N+1个目标横向平面,也必然会获取到N+1个轮廓线集合。
作为一种可选地实施例,步骤S2包括步骤A1~步骤A4,其中:
步骤A1,在所述目标建筑模型的上顶面处构建一横向平面,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第1个轮廓线集合;
步骤A2,将所述构建的横向平面第i次垂直向下移动距离d,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第i+1个轮廓线集合;其中,d小于所述目标建筑模型的建筑高度,i是初始值为1的整数;
步骤A3,判断(i+1)*d是否大于等于所述目标建筑模型的建筑高度,若是执行步骤A4,若否将i赋值为i+1并返回执行步骤A2;
步骤A4,将所述构建的横向平面垂直向下移动至所述目标建筑模型的下底面处,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第N+1个轮廓线集合。
其中,第1个轮廓线集合为目标建筑模型上顶面上的各个构件的轮廓线,第N+1个轮廓线集合为目标建筑模型下底面上的各个构件的轮廓线。
步骤S3,根据每个轮廓线集合确定一目标外轮廓线集合。
每个轮廓线集合唯一确定一个目标外轮廓线集合,N+1个轮廓线集合能够确定出N+1个目标外轮廓线集合。其中,目标外轮廓线集合中只包括外轮廓线。比如,剔除每个轮廓线集合中的内轮廓线,获得对应的目标外轮廓线集合。
但是发明人发现,虽然将从轮廓线集合中剔除内轮廓线后剩余的集合作为目标外轮廓线集合,然后根据这些目标外轮廓线集合生成目标建筑模型的建筑简模,已经可以降低建筑简模的中三角形面片的数量,但是对于系统性能要求较高的场景下,这种方式生成的建筑简模中三角形面片的数量依然较多。因此,需要进一步优化集合中的外轮廓线。作为一种可选地实施例,步骤S31~步骤S33以示例的形式说明了如何优化一个轮廓线集合,实际上,重复执行N+1次步骤S31~步骤S33,可以实现对每一个轮廓线集合的优化过程,从而获得N+1个目标外轮廓线集合,具体地,步骤S3包括步骤S31~步骤S33,其中:
步骤S31,剔除所述轮廓线集合中的内轮廓线,获得初始外轮廓线集合;
步骤S32,将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合,其中,依次将所述中间外轮廓线集合中的外轮廓线首尾相连可形成一个闭环;
步骤S33,合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合。
为了提升优化效率,可以使用R树空间加速结构存储初始外轮廓线集合中的外轮廓线,然后将R树空间加速结构中存储的外轮廓线进行排序,生成中间外轮廓线集合。
依次将中间外轮廓线集合中的外轮廓线首尾相连可形成一个闭环或者近似闭环的形状,也即按照排列顺序将中间外轮廓线集合中的外轮廓线首尾相连可形成一个闭环或者近似闭环的形状。如,中间外轮廓线集合中包括10条外轮廓线,将第1条外轮廓线的终点连接第2条外轮廓线的起点、...、第9条外轮廓线的终点连接第10条外轮廓线的起点、第10条外轮廓线的终点连接第1条外轮廓线的起点,可以形成一个闭环或者近似闭环的形状。
合并中间外轮廓线集合中符合预设条件的外轮廓线,可以是合并掉长度较短的外轮廓线(如若当前获取的轮廓线较短,则将该条轮廓线与后一条轮廓线合并)、合并掉斜率相等的轮廓线。
作为一种可选地实施例,步骤S321~步骤S327以示例的形式说明了如何获得一个中间外轮廓线集合,实际上,重复执行N+1次步骤S321~步骤S327,可以实现对每一个初始轮廓线集合进行排序的过程,从而获得N+1个中间外轮廓线集合,具体地,步骤S32包括步骤S321~步骤S327,其中:
步骤S321,从所述初始外轮廓线集合中随机提取一条外轮廓线作为第一外轮廓线;
步骤S322,新建集合S,并将所述第一外轮廓线添加至所述集合S中;
步骤S323,在所述初始外轮廓线集合中查找与所述第一外轮廓线的终点距离最近的另一条外轮廓线,并判断查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点是否为所述查找到的外轮廓线的起点;
步骤S324,若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线,并执行步骤S326;
步骤S325,若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线,并执行步骤S326;
步骤S326,继续在所述初始外轮廓线集合中查找与所述新的第一外轮廓线的终点距离最近的另一条外轮廓线,直至本次查找到的外轮廓线为第一次提取的外轮廓线;
步骤S327,当本次查找到的外轮廓线为第一次提取的外轮廓线时,将当前的集合S作为所述中间外轮廓线集合,其中,所述中间外轮廓线集合中各个外轮廓线的排列顺序为当前的集合S中各个外轮廓线的添加顺序。
随机提取一条外轮廓线作为第一外轮廓线可以是:从初始外轮廓线集合的线段包围盒外任取一点,以与线段包围盒所在平面重叠的方式向线段包围盒中心发射一条射线,计算初始外轮廓线集合中与该射线相交的外轮廓线,取交点与射线起点最近的外轮廓线作为第1条外轮廓线,且记该第1条外轮廓线为第一外轮廓线,然后执行步骤S322。
新创建的集合S为空集,后续以不清空的方式持续向集合S中存入确定出的第一外轮廓线,并将退出循环后当前存在的最新的集合S作为中间外轮廓线集合。
计算第一外轮廓线的下一条外轮廓线(如,第一外轮廓线代表第1条外轮廓线,则需计算出哪条外轮廓线为第2条外轮廓线),具体为:查询R树,计算与第一外轮廓线的终点距离最近的另一条外轮廓线,由于在目标建筑模型中每条线段已经预先设定好哪个端点为起点哪个端点为终点,因此此时查找出的外轮廓线的起点和终点的方向可能与第一外轮廓线的方向不一致,需要通过步骤S323~步骤S325调整查找出的外轮廓线的起点和终点的方向。
将查找到的外轮廓线作为新的第一外轮廓线,并返回执行步骤S323。重复执行上述循环操作,直至本次查找到的外轮廓线为第一次提取的外轮廓线,也即本次查找到的外轮廓线为第1条外轮廓线,说明已经完成了对初始外轮廓线集合中所有外轮廓线的排序任务,此时可以退出循环,并将当前的集合S作为中间外轮廓线集合,且将集合S中添加外轮廓线的顺序作为中间外轮廓线集合中各个外轮廓线的排列顺序。
需要说明的是,本发明中所述的起点和终点,表征的是端点的一种状态,互换起点和终点时,仅仅互换是端点的状态,并不会互换端点的值。比如一外轮廓线包括第一端点和第二端点,第一端点为起点且第一端点的值为(0,1,3),第二端点为终点且第二端点的值为(0,2,5),则互换该外轮廓线的起点和终点后获得的互换后的外轮廓线为:第一端点为终点且第一端点的值为(0,1,3),第二端点为起点且第二端点的值为(0,2,5)。
为了确保中间外轮廓线集合中每两条相邻的外轮廓线满足G0连续,需要确保每两条相邻的外轮廓线中排列位置靠前的外轮廓线的终点的值和排列位置靠后的外轮廓线的起点的值相等,具体如下:
作为一种可选地实施例,步骤S324包括步骤S3241~步骤S3243,其中:
步骤S3241,若是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;
步骤S3242,若一致,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;
步骤S3243,若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,将修改后的外轮廓线添加至所述集合S中,并将所述修改后的外轮廓线作为新的第一外轮廓线。
作为一种可选地实施例,步骤S325包括步骤S3251~步骤S3253,其中:
步骤S3251,若不是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;
步骤S3252,若一致,互换所述查找到的外轮廓线的起点和终点,将所述互换后的外轮廓线添加至所述集合S中,并将互换后的外轮廓线作为新的第一外轮廓线;
步骤S3253,若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,互换修改后的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线。
为了减少后续生成建筑简模的三角形面片数量,同时提高计算效率,可以剔除中间外轮廓线集合中的短边、合并中间外轮廓线集合中的共线(斜率相等的线段),将优化后获得的集合生成目标外轮廓线集合。作为一种可选地实施例,步骤S33包括步骤B1~步骤B10,其中:
步骤B1,从所述中间外轮廓线集合中提取第一条外轮廓线作为第二外轮廓线,并判断所述第二外轮廓线的长度是否小于预设阈值,若是执行步骤B2,若否执行步骤B3;
步骤B2,将所述中间外轮廓线集合中的第二条外轮廓线的起点的值修改为所述第二外轮廓线的起点的值,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;
步骤B3,新建集合K,将所述第二外轮廓线添加至集合K中,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;
步骤B4,从所述新的中间外轮廓线集合中提取第一条外轮廓线作为新的第二外轮廓线,并判断所述新的第二外轮廓线的长度是否小于预设阈值,若是执行步骤B5,若否执行步骤B6;
步骤B5,将所述新的中间外轮廓线集合中的第二条外轮廓线的起点的值修改为最近一次添加至所述集合K中的外轮廓线的终点的值,并执行步骤B9;
步骤B6,判断所述新的第二外轮廓线的斜率与最近一次添加至所述集合K中的外轮廓线的斜率是否一致,若是执行步骤B7,若否执行步骤B8;
步骤B7,将最近一次添加至所述集合K中的外轮廓线的终点的值修改为所述新的第二外轮廓线的终点的值,并执行步骤B9;
步骤B8,将所述新的第二外轮廓线添加至所述集合K中,并执行步骤B9;
步骤B9,从所述新的中间外轮廓线集合中剔除所述新的第二外轮廓线,再次获得新的中间外轮廓线集合,并返回执行步骤B4,直至剔除中间外轮廓线集合中的所有外轮廓线;
步骤B10,当剔除中间外轮廓线集合中的所有外轮廓线时,将当前的集合K作为所述目标外轮廓线集合。
步骤B5可以包括:判断集合K中是否存在外轮廓线,若存在,将所述新的中间外轮廓线集合中的第二条外轮廓线的起点的值修改为最近一次添加至所述集合K中的外轮廓线的终点的值;若不存在,将所述新的中间外轮廓线集合中的第二条外轮廓线的起点的值修改为所述新的第二外轮廓线的起点的值。
其中,优化的具体逻辑为:对于中间外轮廓线集合中的任意一条外轮廓线,首先,计算其长度,若长度小于阈值,表明该外轮廓线为短边,剔除该短边,同时为了保证后续线段满足G0连续,可以将该外轮廓线下一条的外轮廓线的起点的值修改为上一条的外轮廓的终点的值;若长度不小于阈值,表明该外轮廓线不是短边,进一步计算该外轮廓线的斜率与上一条外轮廓线的斜率是否相等,若相等表明这两条外轮廓线共线,此时剔除该外轮廓线,并将该外轮廓线的上一条外轮廓线的终点的值修改为该外轮廓线的终点的值,以保证线段满足G0连续;若该外轮廓线既不是短边也不是共线,则直接将该外轮廓线加入集合K中。
新创建的集合K为空集,后续以不清空的方式持续向集合K中存入确定出的第二外轮廓线,并将退出循环后当前存在的最新的集合K作为目标外轮廓线集合。
需要说明的是,通过多次移动构建的横向平面,可以实现对目标建筑模型的多次采样,生成多层切片轮廓线的集合M={第1个目标外轮廓线集合,第2个目标外轮廓线集合,...,第N+1个目标外轮廓线集合}。其中,构建的横线平面的移动次数N+1可自由配置,针对不同的建筑模型可以使用不同的移动次数,以保证生成的建筑简模与原始模型的相似性。比如对于简单的住宅楼,上下轮廓基本一样,可以配置移动次数N+1=2;若对于复杂的高层建筑,可以配置N+1=楼层数。
步骤S4,根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。
可以将N+1个目标外轮廓线集合进行放样计算,从而获得目标建筑模型的建筑简模。
作为一种可选地实施例,步骤S4包括步骤S41~步骤S43,其中:
步骤S41,将N+1个目标外轮廓线集合中每两个相邻的目标外轮廓线集合进行放样计算,获得N个子建筑模型的侧面区域,其中,每个侧面区域由三角形网格构成;
步骤S42,将第1个侧面区域的上顶面划分为三角形网格,并将第N个侧面区域的下底面划分为三角形网格;
步骤S43,拼接当前的N个侧面区域,获得所述目标建筑模型的建筑简模。
将第1个目标外轮廓线集合和第2个目标外轮廓线集合进行放样计算,获得第1个侧面区域;...;将第N个目标外轮廓线集合和第N+1个目标外轮廓线集合进行放样计算,获得第N个侧面区域。其中,以对第1个目标外轮廓线集合和第2个目标外轮廓线集合进行放样计算为例,解释放样计算的具体实现逻辑:选取第1个目标外轮廓线集合中第1条外轮廓线作为开始放样计算的线段L1;从第2个目标外轮廓线集合中查找与L1端点距离最近的外轮廓线L2;基于L1和L2生成两个三角形,如图2所示;遍历第1个目标外轮廓线集合中的所有线段,重复第二和第三步骤,生成第1个目标外轮廓线集合中和第2个目标外轮廓线集合中的侧面区域(即第1个侧面区域),如图3所示。
先填充第1个侧面区域的上顶面为三角形网格,再填充第N个侧面区域的下底面为三角形网格,然后再依次拼接这些侧面区域,从而直接获得目标建筑模型的建筑简模。其中,填充三角形网络的示意图如图4所示,比如可以采用多边形三角形算法划分三角形网格。
本发明基于目标建筑模型截面轮廓线的算法重建建筑简模自动处理流程,采用从精细的目标建筑模型生成简化的建筑外壳模型,构建横向平面对目标建筑模型截取生成多层的外层轮廓线,并对每层的外轮廓线进行优化、排序获得对应的目标外轮廓线集合,把相邻的目标外轮廓线集合进行放样,生成三角形面片;同时生成模型精度可配置,比如构建的横向平面与目标建筑模型轮廓线相交的迭代次数N+1可以根据目标建筑模型的复杂程度调整。
图5示出了实施例一中生成建筑简模的方案的具体逻辑图。
如图5所示,输入BIM模型(即目标建筑模型),构建一横向平面,将构建的横向平面的高度调整为与目标建筑模型的建筑高度一致,不断向下移动构建的横向平面,每移动一次,构建的横向平面和目标建筑模型之间产生断层相交线,也即轮廓线集合,对于每个轮廓线集合通过提取外层轮廓线(也即外轮廓线)以及对外轮廓线进行优化,可以获得目标外轮廓线集合;判断迭代是否完成,也即是否将构建的横向平面移动至目标建筑模型的下底面,若否则继续向下移动构建的横向平面,若是则对生成的N+1个目标外轮廓线集合进行放样计算,并填充最上顶面和最下底面,最后生成目标建筑模型的建筑简模(也即三角形模型)。
实施例二
本发明的实施例二提供了一种生成建筑简模的装置,该装置与上述实施例一提供的方法相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图6示出了实施例二中生成建筑简模的装置的框图。如图6所示,该生成建筑简模的装置600可以包括第一获取模块601、第二获取模块602、确定模块603和生成模块604,其中:
第一获取模块601,用于获取待生成建筑简模的目标建筑模型;
第二获取模块602,用于将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面;
确定模块603,用于根据每个轮廓线集合确定一目标外轮廓线集合;
生成模块604,用于根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。
可选地,所述第二获取模块具体用于执行如下步骤:步骤A1,在所述目标建筑模型的上顶面处构建一横向平面,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第1个轮廓线集合;步骤A2,将所述构建的横向平面第i次垂直向下移动距离d,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第i+1个轮廓线集合;其中,d小于所述目标建筑模型的建筑高度,i是初始值为1的整数;步骤A3,判断(i+1)*d是否大于等于所述目标建筑模型的建筑高度,若是执行步骤A4,若否将i赋值为i+1并返回执行步骤A2;步骤A4,将所述构建的横向平面垂直向下移动至所述目标建筑模型的下底面处,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第N+1个轮廓线集合。
可选地,所述确定模块具体用于:剔除所述轮廓线集合中的内轮廓线,获得初始外轮廓线集合;将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合,其中,依次将所述中间外轮廓线集合中的外轮廓线首尾相连可形成一个闭环;合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合。
可选地,所述确定模块在执行所述将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合的步骤时,具体用于:从所述初始外轮廓线集合中随机提取一条外轮廓线作为第一外轮廓线;新建集合S,并将所述第一外轮廓线添加至所述集合S中;在所述初始外轮廓线集合中查找与所述第一外轮廓线的终点距离最近的另一条外轮廓线,并判断查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点是否为所述查找到的外轮廓线的起点;若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线;继续在所述初始外轮廓线集合中查找与所述新的第一外轮廓线的终点距离最近的另一条外轮廓线,直至本次查找到的外轮廓线为第一次提取的外轮廓线;当本次查找到的外轮廓线为第一次提取的外轮廓线时,将当前的集合S作为所述中间外轮廓线集合,其中,所述中间外轮廓线集合中各个外轮廓线的排列顺序为当前的集合S中各个外轮廓线的添加顺序。
可选地,所述确定模块在执行所述若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线的步骤时,具体用于:若是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;若一致,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,将修改后的外轮廓线添加至所述集合S中,并将所述修改后的外轮廓线作为新的第一外轮廓线。
可选地,所述确定模块在执行所述若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线的步骤时,具体用于:若不是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;若一致,互换所述查找到的外轮廓线的起点和终点,将所述互换后的外轮廓线添加至所述集合S中,并将互换后的外轮廓线作为新的第一外轮廓线;若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,互换修改后的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线。
可选地,所述确定模块在执行所述合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合的步骤时,具体用于执行如下步骤:步骤B1,从所述中间外轮廓线集合中提取第一条外轮廓线作为第二外轮廓线,并判断所述第二外轮廓线的长度是否小于预设阈值,若是执行步骤B2,若否执行步骤B3;步骤B2,将所述中间外轮廓线集合中的第二条外轮廓线的起点的值修改为所述第二外轮廓线的起点的值,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;步骤B3,新建集合K,将所述第二外轮廓线添加至集合K中,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;步骤B4,从所述新的中间外轮廓线集合中提取第一条外轮廓线作为新的第二外轮廓线,并判断所述新的第二外轮廓线的长度是否小于预设阈值,若是执行步骤B5,若否执行步骤B6;步骤B5,将所述新的中间外轮廓线集合中的第二条外轮廓线的起点的值修改为最近一次添加至所述集合K中的外轮廓线的终点的值,并执行步骤B9;步骤B6,判断所述新的第二外轮廓线的斜率与最近一次添加至所述集合K中的外轮廓线的斜率是否一致,若是执行步骤B7,若否执行步骤B8;步骤B7,将最近一次添加至所述集合K中的外轮廓线的终点的值修改为所述新的第二外轮廓线的终点的值,并执行步骤B9;步骤B8,将所述新的第二外轮廓线添加至所述集合K中,并执行步骤B9;步骤B9,从所述新的中间外轮廓线集合中剔除所述新的第二外轮廓线,再次获得新的中间外轮廓线集合,并返回执行步骤B4,直至剔除中间外轮廓线集合中的所有外轮廓线;步骤B10,当剔除中间外轮廓线集合中的所有外轮廓线时,将当前的集合K作为所述目标外轮廓线集合。
可选地,所述生成模块具体用于:将N+1个目标外轮廓线集合中每两个相邻的目标外轮廓线集合进行放样计算,获得N个子建筑模型的侧面区域,其中,每个侧面区域由三角形网格构成;将第1个侧面区域的上顶面划分为三角形网格,并将第N个侧面区域的下底面划分为三角形网格;拼接当前的N个侧面区域,获得所述目标建筑模型的建筑简模。
实施例三
图7示出了实施例三提供的适于实现生成建筑简模的方法的计算机设备的框图。本实施例中,计算机设备700可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备700至少包括但不限于:可通过系统总线相互通信连接的存储器701、处理器702、网络接口703。需要指出的是,图7仅示出了具有组件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器703至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。在本实施例中,存储器701通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如生成建筑简模的方法的程序代码等。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制计算机设备700的总体操作。例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等。本实施例中,处理器702用于运行存储器701中存储的生成建筑简模的方法的程序代码。
在本实施例中,存储于存储器701中的生成建筑简模的方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明。
网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口703用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
实施例四
本实施例还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现生成建筑简模的方法的步骤。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
需要说明的是,本发明实施例序号仅仅为了描述,并不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种生成建筑简模的方法,其特征在于,所述方法包括:
获取待生成建筑简模的目标建筑模型;
将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面;
根据每个轮廓线集合确定一目标外轮廓线集合;
根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,包括:
步骤A1,在所述目标建筑模型的上顶面处构建一横向平面,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第1个轮廓线集合;
步骤A2,将所述构建的横向平面第i次垂直向下移动距离d,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第i+1个轮廓线集合;其中,d小于所述目标建筑模型的建筑高度,i是初始值为1的整数;
步骤A3,判断(i+1)*d是否大于等于所述目标建筑模型的建筑高度,若是执行步骤A4,若否将i赋值为i+1并返回执行步骤A2;
步骤A4,将所述构建的横向平面垂直向下移动至所述目标建筑模型的下底面处,并在构建的横向平面的当前位置处识别出所述目标建筑模型中的各个构件与所述构建的横向平面的交线,获得第N+1个轮廓线集合。
3.根据权利要求1所述的方法,其特征在于,所述根据每个轮廓线集合确定一目标外轮廓线集合,包括:
剔除所述轮廓线集合中的内轮廓线,获得初始外轮廓线集合;
将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合,其中,依次将所述中间外轮廓线集合中的外轮廓线首尾相连可形成一个闭环;
合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合。
4.根据权利要求3所述的方法,其特征在于,所述将所述初始外轮廓线集合中的外轮廓线进行排序,获得中间外轮廓线集合,包括:
从所述初始外轮廓线集合中随机提取一条外轮廓线作为第一外轮廓线;
新建集合S,并将所述第一外轮廓线添加至所述集合S中;
在所述初始外轮廓线集合中查找与所述第一外轮廓线的终点距离最近的另一条外轮廓线,并判断查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点是否为所述查找到的外轮廓线的起点;
若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;
若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线;
继续在所述初始外轮廓线集合中查找与所述新的第一外轮廓线的终点距离最近的另一条外轮廓线,直至本次查找到的外轮廓线为第一次提取的外轮廓线;
当本次查找到的外轮廓线为第一次提取的外轮廓线时,将当前的集合S作为所述中间外轮廓线集合,其中,所述中间外轮廓线集合中各个外轮廓线的排列顺序为当前的集合S中各个外轮廓线的添加顺序。
5.根据权利要求4所述的方法,其特征在于,所述若是起点,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线,包括:
若是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;
若一致,将所述查找到的外轮廓线添加至所述集合S中,并将所述查找到的外轮廓线作为新的第一外轮廓线;
若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,将修改后的外轮廓线添加至所述集合S中,并将所述修改后的外轮廓线作为新的第一外轮廓线。
6.根据权利要求4所述的方法,其特征在于,所述若不是起点,互换所述查找到的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线,包括:
若不是起点,判断所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值是否与所述第一外轮廓线的终点的值一致;
若一致,互换所述查找到的外轮廓线的起点和终点,将所述互换后的外轮廓线添加至所述集合S中,并将互换后的外轮廓线作为新的第一外轮廓线;
若不一致,将所述查找到的外轮廓线中与所述第一外轮廓线的终点距离最近的端点的值修改为所述第一外轮廓线的终点的值,互换修改后的外轮廓线的起点和终点,将互换后的外轮廓线添加至所述集合S中,并将所述互换后的外轮廓线作为新的第一外轮廓线。
7.根据权利要求3所述的方法,其特征在于,所述合并所述中间外轮廓线集合中符合预设条件的外轮廓线,获得所述目标外轮廓线集合,包括:
步骤B1,从所述中间外轮廓线集合中提取第一条外轮廓线作为第二外轮廓线,并判断所述第二外轮廓线的长度是否小于预设阈值,若是执行步骤B2,若否执行步骤B3;
步骤B2,将所述中间外轮廓线集合中的第二条外轮廓线的起点的值修改为所述第二外轮廓线的起点的值,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;
步骤B3,新建集合K,将所述第二外轮廓线添加至集合K中,从所述中间外轮廓线集合中剔除所述第二外轮廓线,获得新的中间外轮廓线集合,并执行步骤B4;
步骤B4,从所述新的中间外轮廓线集合中提取第一条外轮廓线作为新的第二外轮廓线,并判断所述新的第二外轮廓线的长度是否小于预设阈值,若是执行步骤B5,若否执行步骤B6;
步骤B5,将所述新的中间外轮廓线集合中的第二条外轮廓线的起点的值修改为最近一次添加至所述集合K中的外轮廓线的终点的值,并执行步骤B9;
步骤B6,判断所述新的第二外轮廓线的斜率与最近一次添加至所述集合K中的外轮廓线的斜率是否一致,若是执行步骤B7,若否执行步骤B8;
步骤B7,将最近一次添加至所述集合K中的外轮廓线的终点的值修改为所述新的第二外轮廓线的终点的值,并执行步骤B9;
步骤B8,将所述新的第二外轮廓线添加至所述集合K中,并执行步骤B9;
步骤B9,从所述新的中间外轮廓线集合中剔除所述新的第二外轮廓线,再次获得新的中间外轮廓线集合,并返回执行步骤B4,直至剔除中间外轮廓线集合中的所有外轮廓线;
步骤B10,当剔除中间外轮廓线集合中的所有外轮廓线时,将当前的集合K作为所述目标外轮廓线集合。
8.根据权利要求1所述的方法,其特征在于,所述根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模,包括:
将N+1个目标外轮廓线集合中每两个相邻的目标外轮廓线集合进行放样计算,获得N个子建筑模型的侧面区域,其中,每个侧面区域由三角形网格构成;
将第1个侧面区域的上顶面划分为三角形网格,并将第N个侧面区域的下底面划分为三角形网格;
拼接当前的N个侧面区域,获得所述目标建筑模型的建筑简模。
9.一种生成建筑简模的装置,其特征在于,所述装置包括:
第一获取模块,用于获取待生成建筑简模的目标建筑模型;
第二获取模块,用于将所述目标建筑模型横向切割为N个子建筑模型,并按照切割顺序依次获取每个子建筑模型中目标横向平面的轮廓线集合,获得N+1个轮廓线集合,其中,每个目标横向平面为对应子建筑模型中未被获取过轮廓线集合的横向平面;
确定模块,用于根据每个轮廓线集合确定一目标外轮廓线集合;
生成模块,用于根据N+1个目标外轮廓线集合生成所述目标建筑模型的建筑简模。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111522183.XA CN114186315A (zh) | 2021-12-13 | 2021-12-13 | 生成建筑简模的方法、装置、计算机设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111522183.XA CN114186315A (zh) | 2021-12-13 | 2021-12-13 | 生成建筑简模的方法、装置、计算机设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114186315A true CN114186315A (zh) | 2022-03-15 |
Family
ID=80604809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111522183.XA Pending CN114186315A (zh) | 2021-12-13 | 2021-12-13 | 生成建筑简模的方法、装置、计算机设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114186315A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256790A (zh) * | 2021-05-21 | 2021-08-13 | 珠海金山网络游戏科技有限公司 | 建模方法及装置 |
WO2024001303A1 (zh) * | 2022-06-27 | 2024-01-04 | 深圳小库科技有限公司 | 装配式钢结构模块建筑的柱梁生成方法、装置及设备 |
-
2021
- 2021-12-13 CN CN202111522183.XA patent/CN114186315A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256790A (zh) * | 2021-05-21 | 2021-08-13 | 珠海金山网络游戏科技有限公司 | 建模方法及装置 |
CN113256790B (zh) * | 2021-05-21 | 2024-06-07 | 珠海金山数字网络科技有限公司 | 建模方法及装置 |
WO2024001303A1 (zh) * | 2022-06-27 | 2024-01-04 | 深圳小库科技有限公司 | 装配式钢结构模块建筑的柱梁生成方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516370B (zh) | 预制构件深化图纸生成方法、装置、计算机设备和介质 | |
CN114186315A (zh) | 生成建筑简模的方法、装置、计算机设备和可读存储介质 | |
US9959670B2 (en) | Method for rendering terrain | |
CN104077446B (zh) | 从数字化三维模型中提取二维电气施工图的方法及系统 | |
JP6892257B2 (ja) | 制約される非対称的細分割メッシュのトポロジー的変更 | |
CN112090078B (zh) | 游戏角色移动控制方法、装置、设备和介质 | |
CN114708358B (zh) | 对象处理方法、装置、设备及计算机可读存储介质 | |
KR20230163921A (ko) | 목표 대상의 상호작용적 재구성을 위한 제어 방법, 장치, 기기 및 저장 매체 | |
CN114255160A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111353188B (zh) | 人造岩石结构设计和制造的自动化系统 | |
CN111599015B (zh) | 一种约束条件下的空间多边形网格化填充方法和装置 | |
WO2014060585A1 (en) | Method for optimized polygon reduction of computer graphics | |
CN116090074A (zh) | 基于施工段作业的算量方法、装置、设备和可读存储介质 | |
CN111209360A (zh) | 一种自动提取路口面的方法及系统 | |
CN103065306A (zh) | 图形数据的处理方法及装置 | |
CN112989746B (zh) | 一种多线程管理的集成电路仿真粗颗粒并行方法及装置 | |
CN112337093B (zh) | 一种虚拟对象的分簇方法、装置、存储介质和电子装置 | |
CN114444185A (zh) | 原位标注的识别方法、装置及电子设备 | |
CN114528305A (zh) | 矢量数据更新范围确定方法、装置、电子设备及存储介质 | |
JP2008299641A (ja) | 連立一次方程式の並列求解方法およびノード順序付け方法 | |
CN113591739B (zh) | 识别图纸中面域的方法、装置、计算机设备和存储介质 | |
CN112988403A (zh) | 具有保密功能的集成电路仿真多线程管理并行方法及装置 | |
CN112634440B (zh) | 三维边框模型构建方法、装置、设备及介质 | |
CN113987650A (zh) | 梁模型的生成方法、装置和计算机设备 | |
CN109675314B (zh) | 虚拟模型优化方法与装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |