CN108961404B - 一种积木式构建不规则模型的方法和系统 - Google Patents

一种积木式构建不规则模型的方法和系统 Download PDF

Info

Publication number
CN108961404B
CN108961404B CN201810678977.7A CN201810678977A CN108961404B CN 108961404 B CN108961404 B CN 108961404B CN 201810678977 A CN201810678977 A CN 201810678977A CN 108961404 B CN108961404 B CN 108961404B
Authority
CN
China
Prior art keywords
slope
model
iteration
dimensional
building
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.)
Active
Application number
CN201810678977.7A
Other languages
English (en)
Other versions
CN108961404A (zh
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.)
Hengyang Normal University
Original Assignee
Hengyang Normal University
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 Hengyang Normal University filed Critical Hengyang Normal University
Priority to CN201810678977.7A priority Critical patent/CN108961404B/zh
Publication of CN108961404A publication Critical patent/CN108961404A/zh
Application granted granted Critical
Publication of CN108961404B publication Critical patent/CN108961404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种积木式构建不规则模型的方法和系统。包括:初始化生成表面地块,表面地块用于执行通用规则函数。将表面地块拉伸生成表面地块立体模型,获取表面地块立体模型中的第一立面;对第一立面进行拉伸形成第一立面立体模型,获取第一立面立体模型的背面;将背面作为斜坡顶的底面生成斜坡顶,并获取斜坡顶的斜坡面以及第二立面;获取第一迭代次数,并将第一立面替换为第二立面进行迭代,生成三维子模型。本发明提供类似积木式的构建方法,实现包含曲面形态的屋顶、具有曲面包裹的墙体等具有曲面形态建筑物的3D建模。

Description

一种积木式构建不规则模型的方法和系统
技术领域
本发明涉及三维GIS建模技术领域,特别是指一种积木式构建不规则模型的方法和系统。
背景技术
目前,三维GIS建模既有广域的场模型构建,同时也有局域的建筑单体构建,场模型一般采用虚拟的体模型方式,而对于建筑单体或者群落要么使用专业性较强的人工手动绘制软件如Sketch Up、3DMax、AutoCAD生成模型,要么使用无人飞机或者激光雷达技术实现点云数据的自动化快速生成。前者单体测量以及建模过程耗时耗力成本巨大,后者虽然能够整体快速生成,但是无法解构单体模型,且细节很难把控。两者共同的弊端是:一旦错误,无法及时逆向修复,返工工作繁重,都需要重新来过。对于CityEngine软件而言,虽然支持快速建模,不必重头来过,但是自生主要支持规则建模,对于不规则模型还是欠缺对应的三维模型库,使用者面临着曲面无法表达,精细程度受限的问题。
发明内容
有鉴于此,本发明的目的在于提出一种积木式构建不规则模型的方法和系统,能够精确并灵活得构建各种曲面模型,简单方便。
基于上述目的本发明提供的一种积木式构建不规则模型的方法,包括:
初始化生成表面地块,所述表面地块用于执行通用规则函数;所述通用规则函数的参数包括迭代斜坡顶初始化数量值、迭代斜坡顶最大次数、斜坡顶与水平面的等量变化倾斜角、斜坡面宽度、模型生成方向、模型生成边界;
将所述表面地块拉伸生成表面地块立体模型,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面;
对所述第一立面进行拉伸形成第一立面立体模型,获取所述第一立面立体模型的背面;
将所述背面作为斜坡顶的底面生成斜坡顶,并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面;
根据所述迭代斜坡顶最大次数与所述迭代斜坡顶初始化数量值的差值获取第一迭代次数,并将所述第一立面替换为所述第二立面进行迭代,生成三维子模型。
进一步,所述将所述背面作为斜坡顶的底面生成斜坡顶,包括:根据所述斜坡面宽度以及所述斜坡顶与水平面的等量变化倾斜角计算获得所述第一立面立体模型的所述背面的宽度。
进一步,所述第一立面立体模型的背面为:所述第一立面立体模型的六个面中,与所述表面地块连接且与所述表面地块处于同一水平面的面。
进一步,所述将所述第一立面替换为所述第二立面进行迭代之后,还包括:迭代完成后,获取全部的所述斜坡面,生成曲面三维子模型。
进一步,所述生成斜坡顶并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面之后,还包括:获取每个所述斜坡顶的底面,对所述底面进行迭代拉伸生成立方柱。
进一步,所述对所述底面进行迭代拉伸生成立方柱包括:
定义拉伸高度变量、迭代次数变量;
针对每个所述底面进行拉伸迭代操作生成底面立体模型,每次迭代均根据所述拉伸高度变量计算本次迭代的拉伸高度,根据所述迭代次数变量计算剩余迭代次数;
获取所述底面立体模型的周边四个立面以及顶面,将所述底面替换为所述顶面进行迭代,生成所述立方柱。
进一步,所述将所述底面替换为所述顶面进行迭代之后,还包括:迭代完成后,获取全部的所述斜坡顶以及全部的所述立方柱,生成拱门三维子模型。
进一步,还包括:
对所述表面地块的全部边界进行等宽度扩张得到第二表面地块;
将扩张区域作为斜坡顶的底面,在所述表面地块的边界执行生成斜坡顶的操作生成全部的扩张区域斜坡顶,获取所述扩张区域斜坡顶的斜坡面;
将所述第二表面地块水平抬升,使得所述第二表面地块的边界与所述扩张区域斜坡顶的所述斜坡面的外边界重合;
将所述表面地块替换为所述第二表面地块并进行迭代,生成曲面扩张三维子模型。
进一步,基于所述三维子模型进行建筑单体模型构建,对所述建筑单体模型进行分析与计算。
本发明还提出一种积木式构建不规则模型的系统,包括:
初始化单元,用于初始化生成表面地块,所述表面地块用于执行通用规则函数;所述通用规则函数的参数包括迭代斜坡顶初始化数量值、迭代斜坡顶最大次数、斜坡顶与水平面的等量变化倾斜角、斜坡面宽度、模型生成方向、模型生成边界;
第一拉伸单元,用于将所述表面地块拉伸生成表面地块立体模型,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面;
第二拉伸单元,用于对所述第一立面进行拉伸形成第一立面立体模型,获取所述第一立面立体模型的背面;
斜坡顶生成单元,用于将所述背面作为斜坡顶的底面生成斜坡顶,并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面;
迭代单元,用于根据所述迭代斜坡顶最大次数与所述迭代斜坡顶初始化数量值的差值获取第一迭代次数,并将所述第一立面替换为所述第二立面进行迭代,生成三维子模型。
从上面所述可以看出,本发明提供的积木式构建不规则模型的方法和系统,采用类似积木式的构建方法,实现包含曲面形态的屋顶、具有曲面包裹的墙体等具有曲面形态建筑物的3D建模,改进现有技术中建模的粗陋之处,使得不规则建模成为可能;该构建方法使得设计变得友好化、建模变得好管理,通过类似于积木方式可以将不规则模型快速展示与修改,进而节省了成本,提高工作效率。
附图说明
图1为本发明实施例积木式构建不规则模型的方法的流程图;
图2为本发明实施例表面地块示意图;
图3为本发明实施例表面地块立体模型示意图;
图4为本发明实施例第一立面示意图;
图5a为本发明实施例第一立面拉伸状态图a;
图5b为本发明实施例第一立面拉伸状态图b;
图6为本发明实施例背面示意图;
图7为本发明实施例斜坡顶生成示意图;
图8a为本发明实施例曲面三维子模型状态图a;
图8b为本发明实施例曲面三维子模型状态图b;
图8c为本发明实施例曲面三维子模型状态图c;
图8d为本发明实施例曲面三维子模型状态图d;
图8e为本发明实施例曲面三维子模型状态图e;
图8f为本发明实施例曲面三维子模型状态图f;
图8g为本发明实施例曲面三维子模型状态图g;
图8h为本发明实施例曲面三维子模型状态图h;
图9为屋顶曲面效果示意图;
图10为乒乓球台曲面效果示意图;
图11为本发明实施例多层斜坡顶结构示意图;
图12为本发明实施例单层立方体结构示意图;
图13为本发明实施例完整立柱面结构示意图;
图14为本发明实施例拱门三维子模型结构示意图;
图15为本发明实施例拱门三维子模型完整结构示意图;
图16为本发明实施例椭圆型表面地块结构示意图;
图17为本发明实施例椭圆型表面地块扩张示意图;
图18a为本发明实施例椭圆型表面地块斜坡顶生成示意图a;
图18b为本发明实施例椭圆型表面地块斜坡顶生成示意图b;
图19为本发明实施例斜坡顶参数示意图;
图20a为本发明实施例曲面扩张三维子模型状态图a;
图20b为本发明实施例曲面扩张三维子模型状态图b;
图20c为本发明实施例曲面扩张三维子模型状态图c;
图20d为本发明实施例曲面扩张三维子模型状态图d;
图20e为本发明实施例曲面扩张三维子模型状态图e;
图21为本发明实施例积木式构建不规则模型的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
以往的三维GIS建模如果遇到不规则建模单体,都需要将其使用第三方建模软件如AutoCAD、3Dmax等手工编辑替换模型,使得达到精细的效果。对于建筑实体本身而言,主要划分为楼层、墙体、门脸、窗户、屋顶。其每个部件都会存在不同形态特征,其中最为突出就是屋顶的表达。在三维GIS中,为了提高三维建模的效率,提出了批量、快速、支持三维参数交互规则建模操作,主要使用于城市规整模型的构建平台—CityEngine。它的用处不仅能够快速建模,同时支持新的WebGL三维模型的网络发布,为数据的传播与共享提供了有力的推广途径。但是在构建模型目标时,由于人类存在不同的文化特征,导致建筑单体或者建筑群落局部或者全局都会存在部分不规则形态,反映出传统历史文化或者是地方特色文化。这类复杂且有信息丰富的建筑形态该软件平台是不能直接生成,需要考虑不同方法灵活组合才能构建不规则的建筑三维模型。
因此,本发明实施例提出一种积木式构建不规则模型的方法,主要适用于具有不规则曲面的屋顶、墙体等模型。图1为本发明实施例积木式构建不规则模型的方法的流程图。所述方法包括:
S101,初始化生成表面地块,所述表面地块用于执行通用规则函数;所述通用规则函数的参数包括迭代斜坡顶初始化数量值、迭代斜坡顶最大次数、斜坡顶与水平面的等量变化倾斜角、斜坡面宽度、模型生成方向、模型生成边界。
优选的,所述通用规则函数可以定义为ArcSide,其参数包括:迭代斜坡顶初始化数量值m_min、迭代斜坡顶最大次数m_max、斜坡顶与水平面的等量变化倾斜角angle、斜坡面宽度width、模型生成方向even以及模型生成边界index,通用规则函数的函数表达式为ArcSide(m_min,m_max,angle,width,even,index)。其中,m_max与m_min的差是斜坡顶需要迭代的次数,m_min为迭代斜坡顶初始化数量值,m_max迭代斜坡顶最大的次数,m_max与m_min的差是斜坡顶需要迭代的次数。模型生成方向even为0,则不执行生成模型操作;even大于0,执行正方向生成对象,指的是模型自身生成的正方的朝向;even小于0,执行负方向生成对象,指的是模型自身生成的负方的朝向。模型生成边界index表示表面地块在生成模型时是在哪一条边进行操作,最大取值为表面地块的边数,如三角形为三个边,四边形为四个边。
S102,将所述表面地块拉伸生成表面地块立体模型,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面。
S103,对所述第一立面进行拉伸形成第一立面立体模型,获取所述第一立面立体模型的背面。
优选的,所述将所述背面作为斜坡顶的底面生成斜坡顶,包括:根据所述斜坡面宽度以及所述斜坡顶与水平面的等量变化倾斜角计算获得所述第一立面立体模型的所述背面的宽度。
优选的,所述第一立面立体模型的背面为:所述第一立面立体模型的六个面中,与所述表面地块连接且与所述表面地块处于同一水平面的面。
S104,将所述背面作为斜坡顶的底面生成斜坡顶,并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面。
S105,根据所述迭代斜坡顶最大次数与所述迭代斜坡顶初始化数量值的差值获取第一迭代次数,并将所述第一立面替换为所述第二立面进行迭代,生成三维子模型。
优选的,所述将所述第一立面替换为所述第二立面进行迭代之后,还包括:迭代完成后,获取全部的所述斜坡面,生成曲面三维子模型。
下面提供一个具体的实施例,在本实施例中,表面地块为一个四边形。
S201,初始化生成如图2所示的表面地块Lot,对该表面地块Lot执行通用规则函数ArcSide,通用规则函数ArcSide的六个参数需要初始化六个对应的数值,但是后续可以进行交互调整。为了便于后续的迭代,赋值可变量Num为m_min,赋值可变量Num_max为m_max。
S202,根据模型生成方向even判断模型生成的朝向问题,判断整体模型是向上或者向下生成。模型生成方向even=1时,将表面地块Lot沿与表面地块Lot垂直的方向拉伸一定高度,得到如图3所示的表面地块立体模型。拉伸时,高度主要基于even*高度值,高度值为一个固定的正数。获取拉伸后的6个面中的其中一个面,主要是拉伸后的周边4个面,依据index索引的一个面执行表面对象沿y方向向上或者向下平移even*高度值,使得执行的表面获取周边立体的一个侧面,拟定为Bottomside面,同时引用原函数的两个参数angle和width,执行函数为Bottomside(angle,width)。拉伸后根据模型生成方向even,根据模型生成边界index=2,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面Bottomside,并删除其他立面,参照图4所示。
S203,对第一立面Bottomside,执行该对象的正方向拉伸一定高度,参照图5a、图5b所示,高度需要符合初始化斜坡顶等宽的计算数值:width*sin(90-(Num+1)*angle),其中,图5a中width=0.5,图5b中width=5。拉伸后形成六个立面体,提取该六个立面中的背面Dside(angle,width),其他表面删除,如图6所示,该背面即为与表面地块的边界连接且与表面地块平行的面。
S204,若满足判断条件:变量Num小于最大递增次数且变量Num递增一次后乘以等量角度angle的结果小于90度,即满足Num<Num_max&&(Num+1)*angle<90,则设置Num增加1,逐步递增一个单元进行迭代;针对Dside(angle,width)表面生成一个如图7所示的斜坡顶,斜坡顶角度为Num*angle;该斜坡顶存在5个面,获取斜坡面Sheds和位于斜坡面对侧的第二立面。
S205,使用第二立面替换第一立面,基于第二立面进行迭代,即执行Bottomside(angle,width),此过程迭代到Num=Num_max结束,得到如图8a所示的子模型。
在实际建模过程中,表面地块Lot并不真实显示,只是作为一个基准面表达,实际显示的只有建模后形成的曲面三维子模型。
在本实施例中,通用规则函数ArcSide(m_min,m_max,angle,width,even,index)中的参数是可以交互调整的,从而可以形成多种不同的组合。
在一些具体的实施例中,初始化后六个参数的初始值如下:
attr m_min=0
attr m_max=20
attr angle=2
attr width=0.5
attr even=1
attr index=5
此时生成的曲面三维子模型如图8a所示,在该子模型中,迭代出等斜坡宽度的曲面。
其他参数不变,调整m_min=10,会生成如图8b所示的曲面三维子模型。
其他参数不变,调整m_max=44,会生成如图8c所示的曲面三维子模型。
其他参数不变,调整angle=1,会生成如图8d所示的曲面三维子模型。
其他参数不变,调整width=1,会生成如图8e所示的曲面三维子模型。
其他参数不变,调整even=-1,会生成如图8f所示的曲面三维子模型。
其他参数不变,对于四边形执行所有边界生成曲面,即调整index分别为2、3、4、5,会生成如图8g所示的曲面三维子模型。
其他参数不变,斜坡顶朝向变更,会生成相似三角形的旋转楼梯,会生成如图8h所示的曲面三维子模型。
上述实施例中生成的曲面三维子模型可以利用到特定具有曲面的屋顶或者是底部支撑架,图8h这种像旋转楼梯,基础形态会逐渐变大。对于图9中的屋顶的曲面效果,主要是两侧向上方向延伸,所以是基于屋顶表面先保留中间一小块,在左右两侧同时制作曲面效果得到,此过程是用程序控制,可以微调大小细节等参数进行建模。而对于图10中乒乓球台的底部支撑架,底部具有曲面效果,主要是两侧向下方向延伸,所以是基于底部表面先保留中间一小块,在左右两侧同时制作曲面效果得到,此过程是用程序控制,可以微调大小细节等参数进行建模。
在本发明的另一些实施例中,所述生成斜坡顶并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面之后,还包括:获取每个所述斜坡顶的底面,对所述底面进行迭代拉伸生成立方柱。
进一步,所述对所述底面进行迭代拉伸生成立方柱包括:
定义拉伸高度变量、迭代次数变量;
针对每个所述底面进行拉伸迭代操作生成底面立体模型,每次迭代均根据所述拉伸高度变量计算本次迭代的拉伸高度,根据所述迭代次数变量计算剩余迭代次数;
获取所述底面立体模型的周边四个立面以及顶面,将所述底面替换为所述顶面进行迭代,生成所述立方柱。
下面提供一个具体的实施例。
步骤S204中生成斜坡顶后,需要完成两个操作指令:
一是复制一个斜坡顶,该斜坡顶执行函数为Cubeside(Num),主要是为每一个斜坡顶生成重复斜坡顶,以及斜坡顶底面的重复迭代生成多个立方柱而创建。
二是需要继续生成曲面表面,同类获取斜坡顶对侧的立面,执行函数Bottomside(angle,width)进行曲面的迭代生成,此过程迭代到变量Num等于最大迭代值Num_max结束,得到如图11所示的模型。该过程是为了保证多层斜坡顶的结构。
针对Cubeside(Num)执行以下步骤:
S301,定义,拉伸高度变量为h=0,迭代次数变量为num_m=0。
S302,赋值一个斜坡顶Shedside,保证初始化斜坡顶五个表面都存在。
S303,同上赋值另外一个斜坡顶,仅获取其斜坡顶的底面buttomside(num)进行底面拉伸多次迭代操作。由于引入迭代参数num,目的是为了每次计算需要循环的次数。由于CityEngine CGA不支持变量空间有效实时存储,因此每次倾斜不同斜坡角度,拱门高度的增加会不同,需要反复多次运算拉伸迭代。
S304,针对底面buttomside(num)函数,赋值num为num_m,然后执行迭代多次的拉伸表面为modify。
进一步,执行modify迭代表面函数主要步骤如下:
如果num_m数值大于1;
设置拉伸高度h为sin((num_m-1)*angle)*width,这是依据斜坡顶高度数学计算;
设置num_m递减一个单元;
对modify表面拉伸高度h,生成6个表面;
获取该六个表面的周边四个面sides以及顶面modify,继续执行modify迭代表面函数,直到num_m为1。这是因为,如果每一层斜坡顶只执行一次立柱生成,则会出现每一个斜坡顶的顶部都延伸一个对应前一个斜坡顶坡高的立方体,如图12所述。如果结束到1,则对应每个斜坡迭代多个立方体,保证出现完整规整的立柱面,如图13所示。
反之,若num_m数值小于等于1,定义为modify end迭代结束。
进一步,迭代完成后,获取全部的所述斜坡顶以及全部的所述立方柱,生成拱门三维子模型,如图14所示。
在一个具体的实施例中,如果保证通用规则函数ArcSide(m_min,m_max,angle,width,even,index)初始化后六个参数的初始值m_min=0、m_max=20、angle=2、width=0.5、even=1、index=5不变,对初始化表面地块Lot先抬升一定高度,再提取顶面,并对顶面沿x切割成两个对半,对两个对半分别执行ArcSide(num,num_max,angle,width,-1,3)|ArcSide(num,num_max,angle,width,-1,5),则执行后生成的拱门三维子模型,如图15所示。本实施例所述拱门三维子模型主要用于类似于门洞、城墙门、穹顶、桥墩等具有拱形特征的模型构建。
在另一些实施例中,所述积木式构建不规则模型的方法还包括:
S401,对所述表面地块的全部边界进行等宽度扩张得到第二表面地块。
S402,将扩张区域作为斜坡顶的底面,在所述表面地块的边界执行生成斜坡顶的操作生成全部的扩张区域斜坡顶,获取所述扩张区域斜坡顶的斜坡面。
S403,将所述第二表面地块水平抬升,使得所述第二表面地块的边界与所述扩张区域斜坡顶的所述斜坡面的外边界重合。
S404,将所述表面地块替换为所述第二表面地块并进行迭代,生成曲面扩张三维子模型。
下面提供一个具体的实施例。
S501,定义一系列参数,保证后续模型可以有效参数化交互调整。
attr angletop1=5//倾斜角度差;
attr numtop=0//初始化迭代次数,影响开始斜坡角度,以及最终迭代次数;
attr numtop1=10//最大的迭代次数,迭代总次数为numtop1-numtop;
attr widthtop=1.5//每次宽度;
m=0//每一层的索引;
S502,指定需要生成扩张的一个不规则或者规则的底面TOProofside,如图16所示,在本实施例中,表面地块为一个椭圆,该椭圆由多个点包围构建。
S503,对该表面TOProofside进行条件判读:
如果变量numtop小于numtop1+1,也就是初始化迭代次数,小于最大迭代次数加1次,表达式为numtop<numtop1+1,若满足该条件则对其表面TOProofside执行迭代操作;反之,为空,不进行迭代。
细节如下:
(1)设置层次索引m,初始化层数为0,每次增加1个单元。
a.如果索引值初始化为0,则执行直接在底面的缓冲区下构建斜坡顶,执行指令如下:
b.自增层数索引m一个单元。
c.添加迭代次数一次,即numtop=numtop+1。
d.向外扩增缓冲区宽度为widthtop,一个单元,得出边界和内侧。函数为offset(widthtop)处理,相当于对表面做一个向外或者向内的缓冲区,如果widthtop为正数则向外扩张该单元,反之向内扩张。扩张的区域会依据边界多少形成相对应数量等宽的面域。目前初始化增量为正,向外扩增。边缘扩宽widthtop,函数名为TOProof,扩宽的面域为图17中的环形区域,内部有两个参数num.m,num记录每一层中每一块表面,而m为记录是第几层结构。内侧也扩宽widthtop,形成涵盖本身底部椭圆的椭圆表面,将其命名为TOProofside,参照图17中扩宽后的全部区域,后续将迭代步骤S503。
e.对生成的缓冲偏移模型,识别其内侧和边缘的面域。对内侧面域继续迭代S503的步骤。而对于边缘的面域TOProof(num,m),需要继续以下步骤:
i.先设置法向量相反,使得执行生成的斜坡顶朝向为正;
ii.执行TOProof(num,m)函数,获取的是每层的m索引下的每一个边缘索引为num的单面,相当于对每一层的所有边缘表面执行生成斜坡顶的操作,具体流程如下:
①判读条件numtop<numtop1+1,若满足则设置numtop递增一个单元,执行对应numtop单元下斜坡顶的生成,如图18a、18b所示,其中水平角度为numtop*angletop1。反之,若条件不满足,为空。
②对该斜坡顶只保留其斜坡面ShedSide(num,m),可以实时捕捉哪一层哪一块斜坡面,提取其他表面。
(2)如果m大于0,则对该表面TOProofside按照z轴平移widthtop*tan(numtop*angletop1)个单位,保证每次外包底层统一抬升。其他步骤同(1)中的步骤b-e。其中,参照图19所示,斜坡顶的角度a为numtop*angletop1,也就是每次递增角度,逐一乘以递增单元;H为抬升高度widthtop*tan(a)=widthtop*tan(numtop*angletop1)。即每次对整体内侧加边缘形成新的椭圆图形抬升对应高度叠加到斜坡面上侧。
迭代完成后,生成曲面扩张三维子模型。
在一些具体的实施例中,如果保证通用规则函数ArcSide(m_min,m_max,angle,width,even,index)初始化后六个参数的初始值m_min=0、m_max=20、angle=2、width=0.5、even=1、index=5不变,表面地块为椭圆,采用上述实施例所述方法形成的曲面扩张三维子模型如图20a所示。
其他参数不变,修改numtop为5,则整体只迭代numtop1-numtop=5次,且模型底部初始化倾斜较垂直,生成的曲面扩张三维子模型如图20b所示。
其他参数不变,修改angletop1为2,生成的曲面扩张三维子模型更为扁平,如图20c所示。
其他参数不变,修改numtop1为15,则整体只迭代numtop1-numtop=15次,且模型底部抬升较高次数,生成的曲面扩张三维子模型如图20d所示。
其他参数不变,表面地块为不规则表面,生成的曲面扩张三维子模型如图20e所示。
上述实施例中生成的曲面扩张三维子模型主要应用在如体育场等具有围合式建筑的建模上,在执行迭代时能够有效避免边与边出现漏洞的情况。
在另一些实施例中,基于上述实施例所述三维子模型包括曲面三维子模型、拱门三维子模型、曲面扩张三维子模型以及其他模型进行建筑单体模型构建,并对所述建筑单体模型进行分析与计算,从而利用该模型进行后续的分析。
本发明还提供一种积木式构建不规则模型的系统,参照图21所示,包括:
初始化单元11,用于初始化生成表面地块,所述表面地块用于执行通用规则函数;所述通用规则函数的参数包括迭代斜坡顶初始化数量值、迭代斜坡顶最大次数、斜坡顶与水平面的等量变化倾斜角、斜坡面宽度、模型生成方向、模型生成边界。
第一拉伸单元12,用于将所述表面地块拉伸生成表面地块立体模型,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面。
第二拉伸单元13,用于对所述第一立面进行拉伸形成第一立面立体模型,获取所述第一立面立体模型的背面。
斜坡顶生成单元14,用于将所述背面作为斜坡顶的底面生成斜坡顶,并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面。
迭代单元15,用于根据所述迭代斜坡顶最大次数与所述迭代斜坡顶初始化数量值的差值获取第一迭代次数,并将所述第一立面替换为所述第二立面进行迭代,生成三维子模型。
本发明所述积木式构建不规则模型的方法和系统,提供了一种构建不规则建筑3D模型的构建方法;采用类似积木式的构建方法,实现包含曲面形态的屋顶、具有曲面包裹的墙体等具有曲面形态建筑物的3D建模,改进现有技术中建模的粗陋之处,使得不规则建模成为可能;该方法适用于城市规整模型构建平台CityEngine,并对该软件功能进行了改进,使得CityEngine能够构建具有不规则形态的建筑单体的3D模型;同时,本方法支持重用以及灵活多变的调整出类似建筑单体或者建筑群体;该构建方法使得设计变得友好化、建模变得好管理,通过类似于积木方式可以将不规则模型快速展示与修改,进而节省了成本,提高工作效率。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种积木式构建不规则模型的方法,其特征在于,包括:
初始化生成表面地块,所述表面地块用于执行通用规则函数;所述通用规则函数的参数包括迭代斜坡顶初始化数量值、迭代斜坡顶最大次数、斜坡顶与水平面的等量变化倾斜角、斜坡面宽度、模型生成方向、模型生成边界;
将所述表面地块拉伸生成表面地块立体模型,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面;
对所述第一立面进行拉伸形成第一立面立体模型,获取所述第一立面立体模型的背面;
将所述背面作为斜坡顶的底面生成斜坡顶,并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面;
根据所述迭代斜坡顶最大次数与所述迭代斜坡顶初始化数量值的差值获取第一迭代次数,并将所述第一立面替换为所述第二立面进行迭代,生成三维子模型。
2.根据权利要求1所述的积木式构建不规则模型的方法,其特征在于,所述将所述背面作为斜坡顶的底面生成斜坡顶,包括:根据所述斜坡面宽度以及所述斜坡顶与水平面的等量变化倾斜角计算获得所述第一立面立体模型的所述背面的宽度。
3.根据权利要求1所述的积木式构建不规则模型的方法,其特征在于,所述第一立面立体模型的背面为:所述第一立面立体模型的六个面中,与所述表面地块连接且与所述表面地块处于同一水平面的面。
4.根据权利要求1所述的积木式构建不规则模型的方法,其特征在于,所述将所述第一立面替换为所述第二立面进行迭代之后,还包括:迭代完成后,获取全部的所述斜坡面,生成曲面三维子模型。
5.根据权利要求4所述的积木式构建不规则模型的方法,其特征在于,所述生成斜坡顶并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面之后,还包括:获取每个所述斜坡顶的底面,对所述底面进行迭代拉伸生成立方柱。
6.根据权利要求5所述的积木式构建不规则模型的方法,其特征在于,所述对所述底面进行迭代拉伸生成立方柱包括:
定义拉伸高度变量、迭代次数变量;
针对每个所述底面进行拉伸迭代操作生成底面立体模型,每次迭代均根据所述拉伸高度变量计算本次迭代的拉伸高度,根据所述迭代次数变量计算剩余迭代次数;
获取所述底面立体模型的周边四个立面以及顶面,将所述底面替换为所述顶面进行迭代,生成所述立方柱。
7.根据权利要求6所述的积木式构建不规则模型的方法,其特征在于,所述将所述底面替换为所述顶面进行迭代之后,还包括:迭代完成后,获取全部的所述斜坡顶以及全部的所述立方柱,生成拱门三维子模型。
8.根据权利要求1所述的积木式构建不规则模型的方法,其特征在于,还包括:
对所述表面地块的全部边界进行等宽度扩张得到第二表面地块;
将扩张区域作为斜坡顶的底面,在所述表面地块的边界执行生成斜坡顶的操作生成全部的扩张区域斜坡顶,获取所述扩张区域斜坡顶的斜坡面;
将所述第二表面地块水平抬升,使得所述第二表面地块的边界与所述扩张区域斜坡顶的所述斜坡面的外边界重合;
将所述表面地块替换为所述第二表面地块并进行迭代,生成曲面扩张三维子模型。
9.根据权利要求1-8任意一项所述的积木式构建不规则模型的方法,其特征在于,基于所述三维子模型进行建筑单体模型构建,对所述建筑单体模型进行分析与计算。
10.一种积木式构建不规则模型的系统,其特征在于,包括:
初始化单元,用于初始化生成表面地块,所述表面地块用于执行通用规则函数;所述通用规则函数的参数包括迭代斜坡顶初始化数量值、迭代斜坡顶最大次数、斜坡顶与水平面的等量变化倾斜角、斜坡面宽度、模型生成方向、模型生成边界;
第一拉伸单元,用于将所述表面地块拉伸生成表面地块立体模型,获取所述表面地块立体模型中与所述模型生成边界对应的第一立面;
第二拉伸单元,用于对所述第一立面进行拉伸形成第一立面立体模型,获取所述第一立面立体模型的背面;
斜坡顶生成单元,用于将所述背面作为斜坡顶的底面生成斜坡顶,并获取所述斜坡顶的斜坡面以及位于所述斜坡面对侧的第二立面;
迭代单元,用于根据所述迭代斜坡顶最大次数与所述迭代斜坡顶初始化数量值的差值获取第一迭代次数,并将所述第一立面替换为所述第二立面进行迭代,生成三维子模型。
CN201810678977.7A 2018-06-27 2018-06-27 一种积木式构建不规则模型的方法和系统 Active CN108961404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810678977.7A CN108961404B (zh) 2018-06-27 2018-06-27 一种积木式构建不规则模型的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810678977.7A CN108961404B (zh) 2018-06-27 2018-06-27 一种积木式构建不规则模型的方法和系统

Publications (2)

Publication Number Publication Date
CN108961404A CN108961404A (zh) 2018-12-07
CN108961404B true CN108961404B (zh) 2022-02-08

Family

ID=64487186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810678977.7A Active CN108961404B (zh) 2018-06-27 2018-06-27 一种积木式构建不规则模型的方法和系统

Country Status (1)

Country Link
CN (1) CN108961404B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110335356B (zh) * 2019-07-08 2022-10-28 衡阳师范学院 一种星型材料的切割方法
CN110472323B (zh) * 2019-08-01 2023-04-28 广联达科技股份有限公司 坡道三维模型构建方法、装置和电子设备
CN110888143B (zh) * 2019-10-30 2022-09-13 中铁四局集团第五工程有限公司 一种基于无人机机载激光雷达的桥梁贯通测量方法
CN111179422B (zh) * 2019-12-31 2023-08-04 深圳市优必选科技股份有限公司 一种模型构建方法、装置及终端设备
CN112434356B (zh) * 2020-10-16 2024-06-14 杭州群核信息技术有限公司 一种基于半边模型的造型方法及系统
CN112950759B (zh) * 2021-01-28 2022-12-06 贝壳找房(北京)科技有限公司 基于房屋全景图的三维房屋模型构建方法及装置
CN113345089B (zh) * 2021-05-31 2023-06-23 西北农林科技大学 一种基于电力塔点云的规则化建模方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1125143A (ja) * 1997-07-04 1999-01-29 Kobe Steel Ltd 造成計画自動修正方法及びその装置
CN102831283A (zh) * 2012-09-19 2012-12-19 河海大学常州校区 一种基于曲面特征的复杂产品模型构建方法
CN106096197A (zh) * 2016-06-30 2016-11-09 夏阳 全三维房屋墙壁地面房顶设计方法及平台
CN106127857A (zh) * 2016-06-24 2016-11-16 南京林业大学 综合数据驱动与模型驱动的机载LiDAR数据建模方法
CN106340066A (zh) * 2016-09-14 2017-01-18 衡阳师范学院 一种建筑物参数化三维建模方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6879946B2 (en) * 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
FR2837597A1 (fr) * 2002-03-25 2003-09-26 Thomson Licensing Sa Procede de modelisation d'une scene 3d

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1125143A (ja) * 1997-07-04 1999-01-29 Kobe Steel Ltd 造成計画自動修正方法及びその装置
CN102831283A (zh) * 2012-09-19 2012-12-19 河海大学常州校区 一种基于曲面特征的复杂产品模型构建方法
CN106127857A (zh) * 2016-06-24 2016-11-16 南京林业大学 综合数据驱动与模型驱动的机载LiDAR数据建模方法
CN106096197A (zh) * 2016-06-30 2016-11-09 夏阳 全三维房屋墙壁地面房顶设计方法及平台
CN106340066A (zh) * 2016-09-14 2017-01-18 衡阳师范学院 一种建筑物参数化三维建模方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CGA参数化快速建模的研究与实现——以雨母山古寺庙建筑群为例;龚雨 等;《测绘通报》;20171231;第112-115页 *
Reconstruction of a rough surface profile with an iterative method based on a rigorous direct wave scattering model;G Soriano et al;《2011 XXXth URSI General Assembly and Scientific Symposium》;20111231;第1-4页 *
基于Delaunay生长法的三维点云曲面建模研究;朱化红;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170315;第I138-4572页 *

Also Published As

Publication number Publication date
CN108961404A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN108961404B (zh) 一种积木式构建不规则模型的方法和系统
CN108959694B (zh) 一种大体量复杂建筑的bim几何模型构建方法
Kelly et al. Interactive architectural modeling with procedural extrusions
CN112883476B (zh) 建筑空间的布局方法、装置及电子设备
CN105354883A (zh) 基于点云的3ds Max快速精细三维建模方法及系统
CN106408604A (zh) 一种点云数据的滤波方法及装置
CN105069226A (zh) 一种基于模板的三维造型建模方法
CN109118588B (zh) 一种基于块分解的彩色lod模型自动生成方法
CN110335354B (zh) 一种模块化3d建模的方法和装置
CN107526895B (zh) 一种古民居群快速建模系统
CN106340066B (zh) 一种建筑物参数化三维建模方法
US9600151B2 (en) Interactive design variations interface
Li et al. Generating daylight-driven architectural design via diffusion models
CN116246012A (zh) 一种虚拟建筑模型的生成方法、装置、以及电子设备
CN102385757B (zh) 一种基于几何空间的语义约束纹理合成方法
Zmugg et al. Procedural architecture using deformation-aware split grammars
Hu et al. Extended interactive and procedural modeling method for ancient Chinese architecture
CN114549742A (zh) 一种图像表观裂缝三维模型构建方法
CN117152379B (zh) 一种建筑物外观模型自动化构建方法及装置
Shepherd et al. Topology optimization of algorithmically generated space frames
CN117274517A (zh) 基于三维模型的城市建筑物轻量化体框模型的生成方法
US8676546B2 (en) Grading method utilizing flow grade solution
CN115984467A (zh) 一种基于无监督学习的多房间室内户型图重建方法
Bonfanti et al. TLS Data for 2D Representation and 3D Modeling. Different Approaches Tested in the Case of San Giovanni in Saluzzo (Cn) Italy
Brol et al. Procedural Generation of Virtual Cities

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
GR01 Patent grant
GR01 Patent grant