CN117725663A - 曲面屋顶的建模方法、装置、设备及存储介质 - Google Patents

曲面屋顶的建模方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117725663A
CN117725663A CN202410179841.7A CN202410179841A CN117725663A CN 117725663 A CN117725663 A CN 117725663A CN 202410179841 A CN202410179841 A CN 202410179841A CN 117725663 A CN117725663 A CN 117725663A
Authority
CN
China
Prior art keywords
roof
contour
curved
line
skeleton
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
Application number
CN202410179841.7A
Other languages
English (en)
Inventor
李修安
刘武杰
幺宝刚
张珣
欧阳宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Wanyi Digital Technology Co ltd
International Digital Economy Academy IDEA
Original Assignee
Shenzhen Wanyi Digital Technology Co ltd
International Digital Economy Academy IDEA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Wanyi Digital Technology Co ltd, International Digital Economy Academy IDEA filed Critical Shenzhen Wanyi Digital Technology Co ltd
Priority to CN202410179841.7A priority Critical patent/CN117725663A/zh
Publication of CN117725663A publication Critical patent/CN117725663A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Abstract

本申请公开了一种曲面屋顶的建模方法、装置、设备及存储介质,方法包括获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架;对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。本申请实施例通过先计算平面轮廓的骨架线,然后再通过对骨架线进行抬升的方式来得到屋脊线,这样可以减少获取屋脊线所需的计算量,从而可以提高屋脊线的计算速度,进而可以提升曲面屋顶的建模效率。

Description

曲面屋顶的建模方法、装置、设备及存储介质
技术领域
本申请涉及于计算机建筑建模技术领域,特别涉及一种曲面屋顶的建模方法、装置、设备及存储介质。
背景技术
屋顶建模是建筑建模中不可或缺的重要组成部分,稳定高效准确的屋顶建模方法有利于提高建筑建模系统的性能和稳定性。屋顶建模一般是以用户提供的二维平面轮廓为输入,输出屋顶的实体模型。
目前现有的屋顶建模方法普遍是通过在三维平面中处理多个平面相交(例如,四个或者四个以上平面相交等)的方式来确定屋脊线。在这种情况下,需要进行大量数据计算来确定屋脊线,导致屋脊线计算速度慢,进而影响曲面屋顶的建模效率。
因而现有技术还有待改进和提高。
发明内容
本申请要解决的技术问题在于,针对现有技术的不足,提供一种曲面屋顶的建模方法、装置、设备及存储介质。
为了解决上述技术问题,本申请实施例第一方面提供了一种曲面屋顶的建模方法,其中,所述方法包括:
获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架,其中,所述平面轮廓包括至少一条曲线型的轮廓线;
对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;
基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。
所述的曲面屋顶的建模方法,其中,所述根据所述平面轮廓确定曲面屋顶骨架具体包括:
根据所述平面轮廓生成曲面屋顶的初始骨架;
对于平面轮廓中任意相邻的两条轮廓线,分别根据每条轮廓线的向上抬升速度和抬升方式,确定每条轮廓线的向内偏移速度;
在所述曲面屋顶的初始骨架中选取两条轮廓线对应的初始骨架线,根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正,以得到曲面屋顶骨架。
所述的曲面屋顶的建模方法,其中,所述根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正具体包括:
读取每条轮廓线的轮廓线类型,并根据两条轮廓线的轮廓线类型和向内偏移速度确定骨架线类型;
读取所述初始骨架线的初始位置和结束位置,根据所述初始位置、结束位置以及所述骨架线类型对所述初始骨架线进行修正。
所述的曲面屋顶的建模方法,其中,所述对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊具体包括:
获取所述曲面屋顶骨架中的每条骨架线的抬升方式;
按照所述每条骨架线的抬升方式对每条骨架线进行抬升,以得到曲面屋顶屋脊。
所述的曲面屋顶的建模方法,其中,所述对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面具体包括:
根据所述曲面屋顶屋脊以及所述平面轮廓确定多面体模型;
读取每条轮廓线的轮廓线类型和抬升方式,根据所述轮廓线类型和所述抬升方式对所述多面体模型中每条轮廓线对应的平面进行更新,以得到屋顶曲面。
所述的曲面屋顶的建模方法,其中,所述抬升方式至少包括线性抬升和弧形抬升中的一种。
所述的曲面屋顶的建模方法,其中,所述根据所述轮廓线类型和所述抬升方式对所述多面体模型中每条轮廓线对应的平面进行更新,以得到屋顶曲面具体包括:
对于每条轮廓线,根据所述轮廓线的轮廓线类型和抬升方式确定所述轮廓线对应的屋顶面的曲面类型;
采用所述曲面类型的屋顶面替换所述多面体模型中所述轮廓线对应的平面,以得到屋顶曲面。
所述的曲面屋顶的建模方法,其中,所述基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面具体包括:
将所述曲面屋顶屋脊和所述屋顶曲面进行组装,以得到上表面;
将所述上表面中的每个面片偏移至预设平面,以得到下表面。
本申请实施例第二方面提供了一种曲面屋顶的建模装置,其中,所述的曲面屋顶的建模装置具体包括:
获取模块,获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架,其中,所述平面轮廓包括至少一条曲线型的轮廓线;
抬升模块,用于对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;
建模模块,用于基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。
本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的曲面屋顶的建模方法中的步骤。
本申请实施例第四方面提供了一种终端设备,其包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如上任一所述的曲面屋顶的建模方法中的步骤。
有益效果:与现有技术相比,本申请提供了一种曲面屋顶的建模方法、装置、设备及存储介质,方法包括获取待建模曲面屋顶的平面轮廓,并根据所述平面轮获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架;对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。本申请实施例通过先计算平面轮廓的骨架线,然后再通过对骨架线进行抬升的方式来得到屋脊线,这样可以减少获取屋脊线所需的计算量,从而可以提高屋脊线的计算速度,进而可以提升曲面屋顶的建模效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申实施例请提供的一种曲面屋顶的建模方法的流程图。
图2为边事件的示意图。
图3为分割事件的示意图。
图4为凸多边形的骨架线的处理示意图。
图5为凹多边形中分割事件的骨架线的处理示意图。
图6为抬升形成屋顶面的一个示例图。
图7为线性抬升的示意图。
图8为弧形抬升的示意图。
图9为曲面屋顶骨架的一个示例图。
图10为直线轮廓线和圆弧轮廓线间等向内偏移速度所形成的骨架线的一个示例图。
图11为圆弧轮廓线和圆弧轮廓线间等向内偏移速度所形成的骨架线的一个示例图。
图12为本申请实施例提供的一种曲面屋顶的建模装置的结构原理图。
图13为本申请提供的终端设备的结构原理图。
具体实施方式
本申请提供一种曲面屋顶的建模方法、装置、设备及存储介质,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
经过研究发现,屋顶建模是建筑建模中不可或缺的重要组成部分,稳定高效准确的屋顶建模方法有利于提高建筑建模系统的性能和稳定性。屋顶建模一般是以用户提供的二维平面轮廓为输入,输出屋顶的实体模型,每条轮廓边和其对应的坡面角定义了一个屋顶平面,所有屋顶平面构成了屋顶表面,上下两个屋顶表面构成屋顶的实体模型。
目前现有的屋顶建模方法普遍是通过在三维平面中求交的方式来确定屋脊线。然而,在三维平面中确定屋脊线时经常需要处理多个平面相交(例如,四个或者四个以上平面相交等)的情况。在这种情况下,需要进行大量数据计算来确定屋脊线,导致屋脊线计算速度慢,进而影响曲面屋顶的建模效率。
为了解决上述问题,在本申请实施例中,获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架;对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。本申请实施例通过先计算平面轮廓的骨架线,然后再通过对骨架线进行抬升的方式来得到屋脊线,这样可以减少获取屋脊线所需的计算量,从而可以提高屋脊线的计算速度,进而可以提升曲面屋顶的建模效率。
下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
请参阅图1,图1为本实施例提供的一种曲面屋顶的建模方法的流程示例图。如图1所示,所述曲面屋顶的建模方法具体包括步骤S10-S30。
步骤S10、获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架。
具体地,平面轮廓为待建模曲屋顶的二维轮廓,并且平面轮廓包括至少一条曲线型的轮廓线。例如,平面轮廓中的一条轮廓线为圆弧等。其中,平面轮廓是用户输入的,也可以是通过外部设备传输的,还可以是用于运行本申请实施例提供的曲面屋顶的建模方法的终端设备本地存储的等。
进一步,在获取到的待建模曲面屋顶的平面轮廓后,可以直接根据平面轮廓来建模曲面屋顶,也可以先对平面轮廓进行预处理,然后再根据预处理后的平面轮廓建模曲面屋顶。其中,在获取到的平面轮廓后,是否进行预处理可以根据平面轮廓所包含的异常轮廓线来确定,例如,当平面轮廓包括的异常轮廓线的数量大于预设数量阈值时,则对平面轮廓进行预处理,反之,当平面轮廓包括的异常轮廓线的数量小于或者等于预设数量阈值时,则不对平面轮廓进行预处理。
需要说明的是,异常轮廓线可以包括长度小于预设长度阈值的短轮廓线、共线的邻接轮廓线(即位于同一直线上的相邻轮廓线)、首尾不相接的轮廓线以及重复轮廓线等。预处理可以包括删除短轮廓线,合并共线的邻接轮廓线,将首尾不相接的轮廓线连接,以及删除重复轮廓线等。
曲面屋顶骨架为对多边形形状抽象描述,其可以包括若干条骨架线,其中,曲面屋顶骨架可以是由多边形的角平分线构成的角平分线网格,也可以是采用具有固定角度的斜坡的构建原理,通过模拟平行切割屋顶获取的屋顶骨架线,还可以多边形的边以恒定速度缩小,顶点沿着角平分线以恒定速度内移所形成的等。
在本申请实施例的一个实现方式中,所述根据所述平面轮廓确定曲面屋顶骨架具体包括:
H10、根据所述平面轮廓生成曲面屋顶的初始骨架;
H20、对于平面轮廓中任意相邻的两条轮廓线,分别根据每条轮廓线的向上抬升速度和抬升方式,确定每条轮廓线的向内偏移速度;
H30、在所述曲面屋顶的初始骨架中选取两条轮廓线对应的初始骨架线,根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正,以得到曲面屋顶骨架。
具体地,在步骤H10中,曲面屋顶的初始骨架可以为根据平面轮廓对应的多边形所生成的直骨架,其中,曲面屋顶的初始骨架的生成过程可以为采用多边形的边以恒定速度缩小,顶点沿着角平分线以恒定速度内移方式生成的,在该方式中,骨架线在多边形内缩过程被描述为两种事件,分别为边事件和分割事件,其中,如图2所示,边事件(A)为不相邻边和/>进行相交,/>边消失,/>边长度收缩为零;如图3所示,分割事件(B)为相邻边/>和/>同时与边/>相交,将对边/>一分为二,即对整个多边形进行分割。
下面分别对凸多边形和凹多边形两种情况对初始骨架线的生成过程进行说明:
一、针对凸多边形:凸多边形只触发边事件(A),如图4所示,初始骨架线生成过程包括:
(1)初始化:
循环遍历平面轮廓上的所有顶点至一个双向链表LVA,并存储于双向链表的集合SLVA;
把每个顶点与其边/>和/>关联,计算角平分线/>;
对每个顶点,计算其角平分线/>与相邻角平分线的交点/>并按时间优先级存储在优先队列/>中,并将/>与/>和/>关联,其中,/>为顶点/>和顶点/>的角平分相交而成;
(2)生成过程(优先队列非空):
弹出交点/>;
设交点为顶点/>和顶点/>的角平分相交而成:
和/>是否已经处理
Continue(继续);
else
和/>相连的边/>收缩为0(图4中打×的边)
三角形特殊处理:
上个顶点/>的上个顶点为/>
输出3个直骨架边,/>和/>;
conitnue;
输出2个直骨架边和;/>
修改链表LVA的活动节点:
//标记已处理;
根据交点的坐标创建节点/>(图4中方块标记);
在链表LVA中插入节点,并把节点和/>与/>关联;
链接边/>和/>(被/>和/>指向的边);
对新的节点计算:
新的角平分线在和/>之间并进行连接;
该角平分线与相邻角平分线的交点(参照初始化中的计算);
存储上述最近交点到优先队列
二、针对凹多边形:凹多边形可能触发边事件(A)和分割事件(B),初始骨架线生成过程包括:
(1)初始化
循环遍历平面轮廓上的所有顶点至一个双向链表LVA,并存储于双向链表的集合SLVA;
把每个顶点与其边/>和/>关联,计算角平分线/>;
对每个顶点,计算其角平分线/>与相邻角平分线的交点/>并按时间优先级存储在优先队列/>中,并将/>与/>和/>关联,其中,/>为顶点/>和顶点/>的角平分相交而成,并标记/>的事件类型(边事件或分割事件);
(2)生成过程(优先队列非空):
弹出交点/>;
if(交点的事件类型为边事件)
执行凸多边形中的步骤(2)
else//事件类型为分割事件
设交点为顶点/>和顶点/>的角平分相交而成:
/和/>是否已经处理
Continue(继续);
ekse
和/>相连的边/>收缩为0
输出1个直骨架边,并对该顶点进行标记处理//如图5所示;
根据交点的坐标创建两个节点/>和节点/>;
把原LVA拆成两个并分别插入节点和节点/>,把节点/>和节点/>与其他节点关联;
和/>链接边//如图5所示;
对节点和节点/>,计算角平分线并进行连接;
存储上述最近交点到优先队列
以上完成对初始骨架生成过程的说明。
在步骤H20中,由于平面轮廓中可以包括曲线型轮廓线,而曲线型轮廓线和直线型轮廓线间的骨架线以及曲线型轮廓线间的骨架线为曲线骨架线。由此,在获取到初始骨架线后,对于每两条相邻轮廓线间的初始骨架线,会根据两条轮廓线的轮廓线类型和向内偏移速度来进行修正。
示例性的,所述根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正具体包括:
读取每条轮廓线的轮廓线类型,并根据两条轮廓线的轮廓线类型和向内偏移速度确定骨架线类型;
读取所述初始骨架线的初始位置和结束位置,根据所述初始位置、结束位置以及所述骨架线类型对所述初始骨架线进行修正。
具体地,轮廓线类型用于反映轮廓线的线型,其中,轮廓线类型可以包括直线型和曲线型。在本申请实施例中,平面轮廓中的部分轮廓边为直线轮廓边,部分轮廓边为曲线轮廓边,或者是,全部轮廓边均为曲线轮廓边。此外,值得说明的是,平面轮廓中的曲线轮廓边可以均被作为弧形轮廓边,其中,当曲线轮廓边弧形轮廓边时,可以将曲线轮廓边划分为若干圆弧轮廓标边。因此,本申请实施例以平面轮廓包括直线轮廓边和圆弧轮廓边为例进行说明。
进一步,向内偏移速度用于反映轮廓线的内缩速度,其中,向内偏移速度可以是用户预设输入的,也可以根据抬升方式计算得到的。在本申请实施例中,所述向内偏移速度的获取过程具体包括:
当抬升方式为线性抬升时,获取所述轮廓线的向内倾斜角度,根据所述向内倾斜角度以及所述向上抬升速度,计算所述轮廓线的向内偏移速度;
当抬升方式为弧形抬升时,获取所述轮廓线对应的弧形半径,基于所述弧形半径以及所述向上抬升速度,计算所述轮廓线的向内偏移速度。
具体地,轮廓线的抬升方式为预先设置的,其中,在进行曲面屋顶建模时,会先输入构建参数,其中,构建参数可以包括各轮廓线的抬升方式以及抬升参数,抬升参数可以根据抬升方式确定,在本申请实施例中,如图6所述,抬升指的是向上且向内平扫,抬升方式可以包括线性抬升和弧形抬升。具体地,线性抬升指的是以线性抬升方式向上且向内平扫,弧形抬升指的是以弧形的形式向上且向内平扫,其中,对于线性抬升,抬升参数可以包括向内倾斜角度和向上抬升速度,对于弧形抬升,抬升参数可以包括弧形半径和向上抬升速度。
在计算不同抬升方式对应的向内偏移速度时,可以获取各抬升方式下向内偏移速度的计算方式,然后通过该计算方式来计算向内偏移速度。其中,当抬升方式为线性抬升时,轮廓线对应的屋顶坡面是由轮廓边进行向上抬升叠加向内偏移的方式平扫生成,由此,轮廓边的向上抬升速度和向内偏移速度呈线性关系。具体地,如图7所示,设轮廓边上的一点,边的切方向为/>,向内垂直方向为/>,竖直向上的向量为/>,则对应坡面上的点/>为:
(1)
其中,表示向上抬升距离,/>表示向内缩进距离。
又由于速度是距离对时间的导数,那么向内偏移速度的计算方式可以为:
其中,表示向上抬升速度,/>表示向内倾斜角。
进一步,当抬升方式为弧形抬升时,通过抬升轮廓线来使得轮廓线通过抬升来形成弧形面,即轮廓线形成的屋顶面片是弧形轮廓,如中式凉亭、欧式穹顶。由此,如图8所示,设轮廓边上的一点,边的切方向为/>,竖直向上的向量为/>,弧形轮廓的点/>以及点/>的向上抬升距离和向内缩进距离间满足:
(2)
其中,表示弧形半径,/>表示向上抬升距离,/>表示向内缩进距离。
又由于速度是距离对时间的导数,那么向内偏移速度的计算方式可以为:
其中,表示向内偏移速度,/>表示向上抬升速度,/>表示弧形半径,/>表示向上抬升距离,/>表示向内缩进距离。
在步骤H30中,对初始骨架线进行修正指的是对初始骨架线的骨架线线型进行修正。这是由于两个直线型的轮廓边对应的骨架线为直骨架,而一个直线型和一个曲线型的轮廓边和两个曲线型的轮廓边对应的骨架线为曲骨架(即骨架线为曲线),例如,如图9所示,圆弧轮廓线与直线轮廓线形成的骨架线为带圆弧的骨架。因此,在获取到的初始骨架线后,可以根据初始骨架线对应的两条轮廓线的轮廓线类型来对骨架线进行调整,例如,当两个轮廓线中有一个是曲线型时,直接将初始骨架线调整为预设曲骨架线,或者是,根据两个轮廓线类型在骨架线在轮廓线类型与骨架线类型的对应关系中选取骨架线类型,然后根据骨架线类型对初始骨架线进行修正。在本申请实施例中,为了提高骨架线的准确性,在根据轮廓线类型确定骨架线类型时,也考虑了轮廓线的抬升速度结合轮廓线和轮廓线的抬升速度同步确定骨架线类型。
基于此,所述根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正具体包括:
H31、读取每条轮廓线的轮廓线类型,并根据两条轮廓线的轮廓线类型和向内偏移速度确定骨架线类型;
H32、读取所述初始骨架线的初始位置和结束位置,根据所述初始位置、结束位置以及所述骨架线类型对所述初始骨架线进行修正。
具体地,轮廓线类型可以是用户输入的,也就是说,通过对轮廓线进行类型识别得到的。根据骨架线类型可以确定骨架线的绘制方式,然后可以根据绘制方式、初始骨架线的初始位置和结束位置绘制得到一条骨架线,并将该骨架线作为初始骨架线修正后的骨架线。也就是说,根据所述初始位置、结束位置以及所述骨架线类型对所述初始骨架线进行修正具体为:根据初始位置、结束位置以及所述骨架线类型确定初始位置和结束位置间的目标骨架线,然后将该目标骨架线作为初始骨架线修正后的骨架线。本申请实施例直接根据轮廓线类型来计算二维平面上的轮廓骨架线,可以减少轮廓骨架线计算所需的计算量,从而可以提高曲面屋顶的建模速度。
进一步,在根据两条轮廓线的轮廓线类型和向内偏移速度确定骨架线类型时,可以直接从轮廓线类型和向内偏移速度与骨架线类型的对应关系中选取骨架线类型,也可以根据轮廓线的轮廓线类型确定轮廓线的表达式,然后根据轮廓线的表达式以及向内偏移速度计算骨架线表达式,然后根据骨架线表达式来确定骨架线类型等。在本申请实施例中,为了提高屋顶建模速度,预先存储了轮廓线类型和向内偏移速度与骨架线类型的对应关系,在获取到两条轮廓线中每条轮廓线的轮廓线类型和各轮廓线的向内偏移速度后,再根据该对应关系查找到骨架线类型。
在本申请实施例中,以轮廓线包括直线轮廓线和圆弧轮廓线为例,对轮廓线类型和向内偏移速度与骨架线类型的对应关系进行说明。
情况一、两个轮廓线均为直线轮廓线;
骨架线类型为直线,即直骨架线,其采用直线表达式来确定的。也就是说,当两条轮廓线均为直线轮廓线时,不论两个轮廓线的向内偏移速度相同或者不相同,骨架线均为直骨架线,即可以直接将初始骨架线作为修正得到的骨架线。
情况二、一个轮廓线为直线轮廓线,一个轮廓线为圆弧轮廓线
1)、当两个轮廓线的向内偏移速度相同时,如图10所示,骨架线类型为抛物线,两个轮廓线间的骨架线可以表示为:
其中,表示直线轮廓线和曲线轮廓线的交点的/>坐标,/>表示圆弧轮廓线的半径,/>和/>表示骨架线的坐标。
2)、当两个轮廓线的向内偏移速度不相同时,骨架线类型可以为椭圆或者双曲线,两个轮廓线间的骨架线可以表示为:
其中,表示直线轮廓线的向内偏移速度和圆弧轮廓线的向内偏移速度的比值,表示圆弧轮廓线的圆心点的/>坐标,/>表示圆弧轮廓线的半径。
情况三、两条轮廓线均为圆弧轮廓线
1)、当两个轮廓线的向内偏移速度相同时,如图11所示,骨架线类型为双曲线,两个轮廓线间的骨架线可以表示为:
其中,和/>分别表示两个圆弧轮廓线的半径,/>表示两个圆弧轮廓线的圆心连线的中点的/>坐标。
2)、当两个轮廓线的向内偏移速度不相同时,骨架线类型为四次多项式曲线,两个轮廓线间的骨架线可以表示为:
其中,表示直线轮廓线的向内偏移速度和圆弧轮廓线的向内偏移速度的比值,/>表示半径为/>的圆弧轮廓线的圆心点的/>轴坐标值,/>和/>分别表示两个圆弧轮廓线的半径,/>, />和/>均表示系数。
本申请实施例通过上述过程直接计算曲线骨架线,这样无需对曲线轮廓边进行离散化,提高了屋脊线的准确性。同时,采用上述方式还可以确定到曲线型屋脊线,可以直接获取到准确的屋脊线,避免了在处理三个以上的屋顶坡面交于一点时,因采用离散方式确定的近似屋脊线所导致的建模错误的问题。
步骤S20,对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面。
具体地,曲面屋顶屋脊包括每条骨架线抬升得到的屋脊线,屋顶曲面包括每个轮廓线进行抬升所得到屋顶面片。其中,每条骨架线和每条轮廓线均配置有抬升方式,抬升方式可以为线性抬升或者弧形抬升。本申请实施例通过采用直接对骨架线和轮廓线进行抬升,无需对曲线轮廓线进行离散,从而可以提高曲面屋顶屋脊和屋顶曲面的准确性。
基于此,所述对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊具体包括:
获取曲面屋顶骨架中的每条骨架线的抬升方式;
按照每条骨架线的抬升方式对每条骨架线进行抬升,以得到曲面屋顶屋脊。
具体地,每条骨架线的抬升方式可以在对骨架线进行抬升时,提示用户输入的,也可以是在骨架线生成时同步获取并与骨架线关联存储的。此外,曲面屋顶骨架是由多条骨架线构成,骨架线间的交点成为节点,每个节点对应平面轮廓中的一条轮廓线,根据节点到该边的轮廓线及该节点对应的骨架线的抬升方式来可以计算出该节点的Z坐标。
具体地,令每个骨架节点都有一个对轮廓线/>,当骨架线对应的抬升方式为线性抬升时,根据骨架节点/>到/>的距离/>以及向内倾斜角度/>可以计算出该骨架节点的Z坐标/>,其中,/>的计算公式可以为:/>。当骨架线对应的抬升方式为弧形抬升时,根据节点/>到/>的距离/>以及弧形抬升的弧形半径,可以计算出该节点的Z坐标/>,其中,/>可以的计算公式可以为上述公式(2)。
在本申请实施例的一个实现方式中,所述对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面具体包括:
根据所述曲面屋顶屋脊以及平面轮廓确定多面体模型;
读取每条轮廓线的轮廓线类型和抬升方式,根据所述轮廓线类型和所述抬升方式对所述多面体模型中每条轮廓线对应的平面进行更新,以得到屋顶曲面。
具体地,当所有的骨架节点坐标计算完毕,曲面屋顶骨架中的二维骨架线变为由二维变成三维屋脊线,相应的,曲面屋顶骨架变为三维的曲面屋顶屋脊。曲面屋顶屋脊与平面轮廓构成三维线框模型。所述平面轮廓中的每一条平面轮廓都是某些骨架节点的,这些骨架节点集合构成一个多边形的顶点,进而构成一个平面,这些平面构成了该轮廓线的多面体模型,其中,所有共享同一条轮廓线的估计节点构成一个面。
进一步,在获取到多面体模型后,可以根据每条轮廓线的轮廓线类型和抬升方式来对轮廓线对应的平面进行更新。也就是说,当采用抬升方式来将轮廓线转换为屋顶面时,不同类型的轮廓线通过不同抬升方式可以形成不同类型的曲面。例如,直线轮廓线以线性抬升方式进行抬升时会形成平面,圆弧轮廓线以线性抬升方式抬升时会形成锥面,直线轮廓线以弧形抬升方式抬升时会形成柱面,圆弧轮廓线以弧形抬升方式抬升时会形成球面。
基于此,所述根据所述轮廓线类型和所述抬升方式对所述多面体模型中每条轮廓线对应的平面进行更新,以得到屋顶曲面具体包括:
对于每条轮廓线,根据所述轮廓线的轮廓线类型和抬升方式确定所述轮廓线对应的屋顶面的曲面类型;
采用所述曲面类型的屋顶面替换所述多面体模型中所述轮廓线对应的平面,以得到屋顶曲面。
具体地,轮廓线类型和抬升方式与曲面类型的对应关系可以预先存储,在读取到轮廓线类型和抬升方式后,可以根据对应关系查找到轮廓线对应的曲面类型。在获取到曲面类型后,可以获取该曲面类型对应的屋顶面的计算公式,然后按照所述计算公式来形成轮廓线对应的屋顶面,其中,在根据计算公式确定屋顶面时,需要根据轮廓线在多面体模型对应的模型面来确定模型参数,然后根据模型参数和计算公式来形成屋顶面,其中,当线性抬升时,计算公式可以为上述公式(1),当弧形抬升时,计算公式可以为上述公式(2),模型参数可以为模型面所包括的各骨架顶点的顶点坐标等。
步骤S30、基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。
具体地,上表面为屋顶的上表面,可以根据曲面屋顶屋脊和屋顶曲面构成,下表面可以通过对上表面做偏移操作完成,上下表面共同构成屋顶的实体模型,即建模得到实体屋顶。
在一些实现方式中,所述基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面具体包括:
将所述曲面屋顶屋脊和所述屋顶曲面进行组装,以得到上表面;
将所述上表面中的每个面片偏移至预设平面,以得到下表面。
具体地,将所述曲面屋顶屋脊和所述屋顶曲面进行组装指的是将通过曲面屋顶屋脊中的屋脊线将屋顶曲面中的各屋顶面连接,以形成上表面(即外表面)。预设平面可以为预先设置的一个水平面,水平面与平面轮廓所在平面平行,以使得下表面可以作为上表面的底面。其中,将所述上表面中的每个面片偏移至预设平面的过程具体可以为:记录每个屋顶面的拓扑信息;将每个屋顶面进行偏移(投影)至预设平面;根据面的拓扑信息,将偏移后的面缝补成一个整体以得到下表面。
综上所述,本实施例提供了一种曲面屋顶的建模方法、装置、设备及存储介质,方法包括获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架;对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。本申请实施例通过先计算平面轮廓的骨架线,然后再通过对骨架线进行抬升的方式来得到屋脊线,这样可以减少获取屋脊线所需的计算量,从而可以提高屋脊线的计算速度,进而可以提升曲面屋顶的建模效率。
基于上述曲面屋顶的建模方法,本实施例提供了一种曲面屋顶的建模装置,如图12所示,所述的曲面屋顶的建模装置包括:
获取模块100,获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架,其中,所述平面轮廓包括至少一条曲线型的轮廓线;
抬升模块200,用于对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;
建模模块300,用于基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。
基于上述曲面屋顶的建模方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的曲面屋顶的建模方法中的步骤。
基于上述曲面屋顶的建模方法,本申请还提供了一种终端设备,如图13所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种曲面屋顶的建模方法,其特征在于,所述方法包括:
获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架,其中,所述平面轮廓包括至少一条曲线型的轮廓线;
对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;
基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。
2.根据权利要求1所述的曲面屋顶的建模方法,其特征在于,所述根据所述平面轮廓确定曲面屋顶骨架具体包括:
根据所述平面轮廓生成曲面屋顶的初始骨架;
对于平面轮廓中任意相邻的两条轮廓线,分别根据每条轮廓线的向上抬升速度和抬升方式,确定每条轮廓线的向内偏移速度;
在所述曲面屋顶的初始骨架中选取两条轮廓线对应的初始骨架线,根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正,以得到曲面屋顶骨架。
3.根据权利要求2所述的曲面屋顶的建模方法,其特征在于,所述根据两条轮廓线的向内偏移速度对所述初始骨架线进行修正具体包括:
读取每条轮廓线的轮廓线类型,并根据两条轮廓线的轮廓线类型和向内偏移速度确定骨架线类型;
读取所述初始骨架线的初始位置和结束位置,根据所述初始位置、结束位置以及所述骨架线类型对所述初始骨架线进行修正。
4.根据权利要求1所述的曲面屋顶的建模方法,其特征在于,所述对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊具体包括:
获取所述曲面屋顶骨架中的每条骨架线的抬升方式;
按照所述每条骨架线的抬升方式对每条骨架线进行抬升,以得到曲面屋顶屋脊。
5.根据权利要求1所述的曲面屋顶的建模方法,其特征在于,所述对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面具体包括:
根据所述曲面屋顶屋脊以及所述平面轮廓确定多面体模型;
读取每条轮廓线的轮廓线类型和抬升方式,根据所述轮廓线类型和所述抬升方式对所述多面体模型中每条轮廓线对应的平面进行更新,以得到屋顶曲面。
6.根据权利要求4或5所述的曲面屋顶的建模方法,其特征在于,所述抬升方式至少包括线性抬升和弧形抬升中的一种。
7.根据权利要求5所述的曲面屋顶的建模方法,其特征在于,所述根据所述轮廓线类型和所述抬升方式对所述多面体模型中每条轮廓线对应的平面进行更新,以得到屋顶曲面具体包括:
对于每条轮廓线,根据所述轮廓线的轮廓线类型和抬升方式确定所述轮廓线对应的屋顶面的曲面类型;
采用所述曲面类型的屋顶面替换所述多面体模型中所述轮廓线对应的平面,以得到屋顶曲面。
8.根据权利要求1所述的曲面屋顶的建模方法,其特征在于,所述基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面具体包括:
将所述曲面屋顶屋脊和所述屋顶曲面进行组装,以得到上表面;
将所述上表面中的每个面片偏移至预设平面,以得到下表面。
9.一种曲面屋顶的建模装置,其特征在于,所述的曲面屋顶的建模装置具体包括:
获取模块,获取待建模曲面屋顶的平面轮廓,并根据所述平面轮廓确定曲面屋顶骨架,其中,所述平面轮廓包括至少一条曲线型的轮廓线;
抬升模块,用于对所述曲面屋顶骨架中的每条骨架线进行抬升以得到曲面屋顶屋脊,并对平面轮廓中的每条轮廓线进行抬升以得到屋顶曲面;
建模模块,用于基于所述曲面屋顶屋脊和所述屋顶曲面构建上表面和下表面,并根据所述上表面和所述下表面建模,得到实体屋顶。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述的曲面屋顶的建模方法中的步骤。
11.一种终端设备,其特征在于,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如权利要求1-8任意一项所述的曲面屋顶的建模方法中的步骤。
CN202410179841.7A 2024-02-18 2024-02-18 曲面屋顶的建模方法、装置、设备及存储介质 Pending CN117725663A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410179841.7A CN117725663A (zh) 2024-02-18 2024-02-18 曲面屋顶的建模方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410179841.7A CN117725663A (zh) 2024-02-18 2024-02-18 曲面屋顶的建模方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117725663A true CN117725663A (zh) 2024-03-19

Family

ID=90202038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410179841.7A Pending CN117725663A (zh) 2024-02-18 2024-02-18 曲面屋顶的建模方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117725663A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130055185A (ko) * 2011-11-18 2013-05-28 서울대학교산학협력단 파라메트릭 구동에 의한 한옥 지붕 부재의 모델링 방법
CN107545602A (zh) * 2017-08-04 2018-01-05 长江空间信息技术工程有限公司(武汉) 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法
US20190385363A1 (en) * 2018-06-15 2019-12-19 Geomni, Inc. Computer Vision Systems and Methods for Modeling Roofs of Structures Using Two-Dimensional and Partial Three-Dimensional Data
CN110598331A (zh) * 2019-09-17 2019-12-20 广联达科技股份有限公司 一种屋顶建模的方法和装置
CN111508074A (zh) * 2020-03-12 2020-08-07 浙江工业大学 一种基于屋顶轮廓线的三维建筑模型简化方法
CN111709078A (zh) * 2020-06-16 2020-09-25 常州市规划设计院 基于bim技术的走廊可视化建模方法
CN116363319A (zh) * 2023-06-01 2023-06-30 浙江国遥地理信息技术有限公司 一种建筑物屋顶的建模方法、建模装置、设备及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130055185A (ko) * 2011-11-18 2013-05-28 서울대학교산학협력단 파라메트릭 구동에 의한 한옥 지붕 부재의 모델링 방법
CN107545602A (zh) * 2017-08-04 2018-01-05 长江空间信息技术工程有限公司(武汉) 基于LiDAR点云的空间拓扑关系约束下的建筑物建模方法
US20190385363A1 (en) * 2018-06-15 2019-12-19 Geomni, Inc. Computer Vision Systems and Methods for Modeling Roofs of Structures Using Two-Dimensional and Partial Three-Dimensional Data
CN110598331A (zh) * 2019-09-17 2019-12-20 广联达科技股份有限公司 一种屋顶建模的方法和装置
CN111508074A (zh) * 2020-03-12 2020-08-07 浙江工业大学 一种基于屋顶轮廓线的三维建筑模型简化方法
CN111709078A (zh) * 2020-06-16 2020-09-25 常州市规划设计院 基于bim技术的走廊可视化建模方法
CN116363319A (zh) * 2023-06-01 2023-06-30 浙江国遥地理信息技术有限公司 一种建筑物屋顶的建模方法、建模装置、设备及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李林: "基于拓扑优化的建筑物屋顶结抅的规则化处理", 《中国优秀硕士学位论文全文数据库工程科技II辑》, 15 March 2022 (2022-03-15), pages 1 - 63 *
王飞 等: "利用多边形骨架线生成房屋模型算法研究", 《测绘通报》, 15 January 2017 (2017-01-15), pages 69 - 74 *

Similar Documents

Publication Publication Date Title
US6825839B2 (en) Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications
JP2642070B2 (ja) 四角形メッシュの生成方法及びシステム
EP2688040B1 (en) 3D registration of tomographic models using particularly chosen points
JP5034941B2 (ja) コンピュータ読み出し可能媒体、システム及び方法
JPH10247253A (ja) グラフィック表面モデルをマップする方法及びコンピュータ装置
CN108171793B (zh) 一种探查层叠区域三角网格的方法
US20200327719A1 (en) Computer Handling of Three Dimensional Volumes
US20050021318A1 (en) Shape generation apparatus, control method to cause computer apparatus to operate as shape generation apparatus and computer executable program to allow computer apparatus to execute the control method
Hruda et al. Rotational symmetry detection in 3D using reflectional symmetry candidates and quaternion-based rotation parameterization
CN117725663A (zh) 曲面屋顶的建模方法、装置、设备及存储介质
CN113592987A (zh) 骨骼映射方法和装置、设备、存储介质
CN115861547B (zh) 一种基于投影的模型表面样条线生成方法
US8744146B2 (en) Vascular reformatting using curved planar reformation
CN111856747A (zh) 一种基于最优传输的反射镜设计方法
Splietker et al. Directional TSDF: Modeling surface orientation for coherent meshes
JP2003263464A (ja) フィレット作成方法、及び3次元cadプログラム
JP2002207777A (ja) 中立面モデルの生成方法
JP6025615B2 (ja) 画像描画装置
JP2003271988A (ja) 画像生成装置及びプログラム
JP6915237B2 (ja) 情報処理装置、シミュレータ結果表示方法、及びシミュレータ結果表示プログラム
Behar et al. Dynamic Minkowski sums under scaling
JP7350122B2 (ja) 車両の底面境界点の確定方法、装置、路側機器及びクラウド制御プラットフォーム
Jia et al. Fast mesh simplification algorithm based on edge collapse
Xu Hexahedral Mesh Generation, Optimization, and Visualization
JPH11144093A (ja) 解析メッシュ生成方法及び装置

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