CN112651063B - 一种创建户型整体网格模型的方法 - Google Patents
一种创建户型整体网格模型的方法 Download PDFInfo
- Publication number
- CN112651063B CN112651063B CN201911272731.0A CN201911272731A CN112651063B CN 112651063 B CN112651063 B CN 112651063B CN 201911272731 A CN201911272731 A CN 201911272731A CN 112651063 B CN112651063 B CN 112651063B
- Authority
- CN
- China
- Prior art keywords
- house type
- points
- point
- grid model
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种创建户型整体网格模型的方法,该方法是基于户型绘制数据自动进行冗余数据剔除创建户型整体网格模型的方法,包括以下具体步骤:步骤1:加载家装设计软件,获取方案户型数据;步骤2:记录所有墙体的点数据并将其压入唯一性点集(PointSet)中,记录其坐标与其在点集中索引的匹配关系;步骤3:记录所有地面的点数据并将其压入上述唯一性点集(PointSet)中。该创建户型整体网格模型的方法可以对户型非必要性重复的数据进行过滤,便捷生成户型整体的网格模型,网格模型的形式可以设置为多边形混合模型以及通用的三角化网格模型,整体性的户型网格模型可以更有利于后续户型的展示以及其它与户型可视化相关的操作。
Description
技术领域
本发明属于户型整体网格模型技术领域,具体为一种创建户型整体网格模型的方法。
背景技术
现有的家装设计软件,一般创建方案的流程是先绘制墙体,然后基于墙体投影数据自动创建匹配的区域。在户型三维重建的过程中,一般的过程是独立化地先基于墙体数据还原所有墙体的网格模型,然后基于区域轮廓数据再生成地面的网格模型。(这里的网格模型可以是多边形网格模型也可以为通用的三角形网格模型)。实际上通过地面的自动创建流程,可以看出地面区域的轮廓数据实际是其匹配墙体的底部内线点构成。独立还原墙体以及独立还原地面区域,这必将造成在还原整体户型数据的冗余,更重要的是这种单独创建的方式造成了墙体与地面模型的割裂,形成了多个网格模型的组合,不利于对整体户型网格模型的处理。
发明内容
针对现有技术存在的上述问题,本发明所要解决的技术问题在于提供一种创建户型整体网格模型的方法,以解决目前的家装设计中,独立还原墙体以及独立还原地面区域,造成在还原整体户型数据的冗余,同时造成了墙体与地面模型的割裂,形成了多个网格模型的组合,不利于对整体户型网格模型的处理的问题。
为了解决上述技术问题,本发明采用的技术方案为:
一种创建户型整体网格模型的方法,该方法是基于户型绘制数据自动进行冗余数据剔除创建户型整体网格模型的方法,包括以下具体步骤:
步骤1:加载家装设计软件,获取方案户型数据;
步骤2:记录所有墙体的点数据并将其压入唯一性点集(PointSet)中,记录其坐标与其在点集中索引的匹配关系;
步骤3:记录所有地面的点数据并将其压入上述唯一性点集(PointSet)中,记录其坐标与其在点集中索引的匹配关系;
步骤4:用PointSet构建整体户型网格模型的点集;
步骤5:依据原始墙体面片中的点顺序及其坐标,获取其点在PointSet中的索引,依次构建墙体的面片;
步骤6:进行是否三角化的确认;
步骤7:建立所有墙体与区域的关联关系。
进一步的,所述步骤6中,是否三角化确认的步骤如下:
步骤6.1:不需要三角化处理,则直接结束,将上述步骤1到步骤5结束后的多边形混合网格模型输出;
步骤6.2:需要三角化处理,则进入地面三角化处理;
步骤6.3:进行共线墙体合并处理,即将两相邻墙体,墙中线端点相连,两墙中线夹角接近0度,则将该墙体合并,剔除中间共用的墙中线的端点,两墙中线合并;
步骤6.4:墙体面片三角化处理。
进一步的,所述步骤6.4中,该墙面是个四边形,则连接其对角线,将其劈成两个三角形,该墙面是个多边形,则取其任一点,连接该点与其间隔点,构成多个三角形。
进一步的,地面区域三角化方法如下:
步骤a:地面区域的预处理;
步骤b:预处理后区域多边形的“凹凸性”检测;
步骤c:区域“凸化”处理;
步骤d:“凸多边形”三角化处理。
进一步的,所述步骤b中,获取预处理后区域的有序点集。
进一步的,所述步骤b中,依次获取区域每相邻的两条线段,进行如下计算:
①:以AB与BC为例,计算向量AB以及向量BC的外积,取名为Vec1;
②:计算Vec1与向量(0,0,1)的内积,取其内积值的符号,记为Sign;
③:接着计算BC与CD相邻线段的构建向量的外积,计算该外积与向量(0,0,1)的符号;
④:判定上述符合是否与前者相同,若相同,重复前面的过程,直到所有的线段计算完毕,若符号始终相同,则执行步骤步骤d;若出现不同,则为“凹多边形”。
进一步的,所述步骤c中,当出现两线段的外积向量与向量(0,0,1)的内积符号为负时,则延长该两条线段中的第一个线段,计算其与多边形的交点,劈分该多边形,得到两个多边形。
进一步的的,所述步骤c中,对上述劈分的多边形进行上述步骤b的“凹凸性”检测,遇到“凹多边形”继续执行劈分多边形的操作,直到所有的多边形都是“凸多边形”。
进一步的,所述“凸多边形”三角化处理方法如下:
1):依次判定相邻三点能否构成三角面片,即判定三相邻点构成三角形的有效性;
2):构成三角形,则创建该三角面片,同时从原凸多边形中剔除三点中的中间点;
3):不能构成三角形,即可能出现三点共线,则继续执行下面的三点的情况,即重复执行步骤1)对后续相邻的三点进行判定;
4):剩下最后三点时,将该三点连接创建三角面片,凸多边形三角化处理完毕。
有益效果:与现有技术相比,本申请具有以下优势:
该创建户型整体网格模型的方法可以对户型非必要性重复的数据进行过滤,便捷生成户型整体的网格模型,网格模型的形式可以设置为多边形混合模型以及通用的三角化网格模型,整体性的户型网格模型可以更有利于后续户型的展示以及其它与户型可视化相关的操作。
附图说明
图1是基于户型绘制数据自动进行冗余数据剔除创建户型整体网格模型的流程图;
图2是地面区域三角化流程;
图3是共线墙体合并前示意图;
图4是共线墙体合并后示意图;
图5是区域预处理后的示意图;
图6是存在共点的区域示意图;
图7是区域三角化示意图;
图8是户型整体网格模型示意图。
具体实施方式
下面结合附图对本发明做进一步的说明。
如图1所示,本申请的创建户型整体网格模型的方法,该方法是基于户型绘制数据自动进行冗余数据剔除创建户型整体网格模型的方法,包括以下具体步骤:
步骤1:加载家装设计软件,获取方案户型数据,包括区域数据(即多边形),墙体数据(即多面体);
步骤2:记录所有墙体的点数据并将其压入唯一性点集(PointSet)中,(即该点集中剔除重复的点),记录其坐标与其在点集中索引的匹配关系;
步骤3:记录所有地面的点数据并将其压入上述唯一性点集(PointSet)中,记录其坐标与其在点集中索引的匹配关系;
步骤4:用PointSet构建整体户型网格模型的点集,即完成Add_Vertex(添加点)的操作,该点集中不存在重复的点,删除了以往那种先加墙体点集,再加地面点集的方式(该方式的弊端是墙体底部点存在与地面重复的点集,同时墙体之间衔接的点也存在共同的点,造成同一个点多次记录多次存储的问题);
步骤5:依据原始墙体面片中的点顺序及其坐标,获取其点在PointSet中的索引,依次构建墙体的面片,即每个墙体由多个多边形组成,即完成Add_Face(添加面)的操作;
步骤6:进行是否三角化的确认(默认情况下,自动进行三角化处理);
步骤7:建立所有墙体与区域的关联关系,依据墙体底部数据与区域数据存在共点的特征建立墙体与区域的相关性,同时赋予墙体与地面序号号,可以便于索引整个户型的墙体与地面。
如图2所示,在步骤6中,是否三角化确认的步骤如下:
步骤6.1:若不需要三角化处理,则直接结束,将上述步骤1到步骤5结束后的多边形混合网格模型输出;
步骤6.2:需要三角化处理,则进入地面三角化处理;
步骤6.3:进行共线墙体合并处理,即将两相邻墙体,墙中线端点相连,两墙中线夹角接近0度,则将该墙体合并,剔除中间共用的墙中线的端点,两墙中线合并共线墙体合并前的示意图如图3所示;共线墙体合并后的示意图如图4所示;
步骤6.4:墙体面片三角化处理。
在步骤6.4中,若该墙面是个四边形,则连接其对角线,将其劈成两个三角形,若该墙面是个多边形,则取其任一点,连接该点与其间隔点,构成多个三角形。
如图5、图6、图7所示,地面区域三角化方法如下:
步骤a:地面区域的预处理,即剔除共线点;
步骤b:预处理后区域多边形的“凹凸性”检测;
步骤c:区域“凸化”处理;
步骤d:“凸多边形”三角化处理。
步骤b中,获取预处理后区域的有序点集。
步骤b中,依次获取区域每相邻的两条线段,进行如下计算:
①:以AB与BC为例,计算向量AB以及向量BC的外积,取名为Vec1;
②:计算Vec1与向量(0,0,1)的内积,取其内积值的符号,记为Sign;
③:接着计算BC与CD相邻线段的构建向量的外积,计算该外积与向量(0,0,1)的符号;
④:判定上述符合是否与前者相同,若相同,重复前面的过程,直到所有的线段计算完毕,若符号始终相同,则执行步骤步骤d;若出现不同,则为“凹多边形”。
步骤c中,当出现两线段的外积向量与向量(0,0,1)的内积符号为负时,则延长该两条线段中的第一个线段,计算其与多边形的交点,劈分该多边形,得到两个多边形。
步骤c中,对上述劈分的多边形进行上述步骤b的“凹凸性”检测,遇到“凹多边形”继续执行劈分多边形的操作,直到所有的多边形都是“凸多边形”。
“凸多边形”三角化处理方法如下:
1):依次判定相邻三点能否构成三角面片,即判定三相邻点构成三角形的有效性,若能构成三角形,执行2);若不能,则执行步骤3);
2):构成三角形,则创建该三角面片,同时从原凸多边形中剔除三点中的中间点;
3):不能构成三角形,即可能出现三点共线,则继续执行下面的三点的情况,即重复执行步骤1)对后续相邻的三点进行判定;
4):剩下最后三点时,将该三点连接创建三角面片,凸多边形三角化处理完毕。
本发明提供了一种创建户型整体网格模型的方法的思路及实施方法,具体应用途径很多,以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进也应视为本发明的保护范围。
Claims (7)
1.一种创建户型整体网格模型的方法,其特征在于:该方法是基于户型绘制数据自动进行冗余数据剔除创建户型整体网格模型的方法,包括以下具体步骤:
步骤1:加载家装设计软件,获取方案户型数据;
步骤2:记录所有墙体的点数据并将其压入唯一性点集PointSet中,记录其坐标与其在点集中索引的匹配关系;
步骤3:记录所有地面的点数据并将其压入上述唯一性点集PointSet中,记录其坐标与其在点集中索引的匹配关系;
步骤4:用PointSet构建整体户型网格模型的点集;
步骤5:依据原始墙体面片中的点顺序及其坐标,获取其点在PointSet中的索引,依次构建墙体的面片;
步骤6:进行是否三角化的确认;
步骤6.1:不需要三角化处理,则直接结束,将上述步骤1到步骤5结束后的多边形混合网格模型输出;
步骤6.2:需要三角化处理,则进入地面三角化处理;
步骤6.3:进行共线墙体合并处理,即将两相邻墙体,墙中线端点相连,两墙中线夹角接近0度,则将该墙体合并,剔除中间共用的墙中线的端点,两墙中线合并;
步骤6.4:墙体面片三角化处理,墙面是个四边形,则连接其对角线,将其劈成两个三角形,墙面是个多边形,则取其任一点,连接该点与其间隔点,构成多个三角形;
步骤7:建立所有墙体与区域的关联关系。
2.根据权利要求1所述的创建户型整体网格模型的方法,其特征在于:地面区域三角化方法如下:
步骤a:地面区域的预处理;
步骤b:预处理后区域多边形的“凹凸性”检测;
步骤c:区域“凸化”处理;
步骤d:“凸多边形”三角化处理。
3.根据权利要求2所述的创建户型整体网格模型的方法,其特征在于:所述步骤b中,获取预处理后区域的有序点集。
4.根据权利要求2所述的创建户型整体网格模型的方法,其特征在于:所述步骤b中,依次获取区域每相邻的两条线段,进行如下计算:
①:以AB与BC为例,计算向量AB以及向量BC的外积,取名为Vec1;
②:计算Vec1与向量(0,0,1)的内积,取其内积值的符号,记为Sign;
③:接着计算BC与CD相邻线段的构建向量的外积,计算该外积与向量(0,0,1)的符号;
④:判断上述符号是否与前者相同,若相同,重复前面的过程,直到所有的线段计算完毕,若符号始终相同,则执行步骤d;若出现不同,则为“凹多边形”。
5.根据权利要求2所述的创建户型整体网格模型的方法,其特征在于:所述步骤c中,当出现两线段的外积向量与向量(0,0,1)的内积符号为负时,则延长两条线段中的第一个线段,计算其与多边形的交点,劈分该多边形,得到两个多边形。
6.根据权利要求5所述的创建户型整体网格模型的方法,其特征在于:所述步骤c中,对上述劈分的多边形进行上述步骤b的“凹凸性”检测,遇到“凹多边形”继续执行劈分多边形的操作,直到所有的多边形都是“凸多边形”。
7.根据权利要求6所述的创建户型整体网格模型的方法,其特征在于:所述“凸多边形”三角化处理方法如下:
1):依次判定相邻三点能否构成三角面片,即判定三相邻点构成三角形的有效性;
2):构成三角形,则创建该三角面片,同时从原凸多边形中剔除三点中的中间点;
3):不能构成三角形,即可能出现三点共线,则继续执行下面的三点的情况,即重复执行步骤1)对后续相邻的三点进行判定;
4):剩下最后三点时,将该三点连接创建三角面片,凸多边形三角化处理完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911272731.0A CN112651063B (zh) | 2019-12-11 | 2019-12-11 | 一种创建户型整体网格模型的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911272731.0A CN112651063B (zh) | 2019-12-11 | 2019-12-11 | 一种创建户型整体网格模型的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112651063A CN112651063A (zh) | 2021-04-13 |
CN112651063B true CN112651063B (zh) | 2022-07-26 |
Family
ID=75343247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911272731.0A Active CN112651063B (zh) | 2019-12-11 | 2019-12-11 | 一种创建户型整体网格模型的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112651063B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114139245A (zh) * | 2021-10-29 | 2022-03-04 | 土巴兔集团股份有限公司 | 一种模型数据刷新方法及其相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441780A (zh) * | 2008-11-05 | 2009-05-27 | 武汉大学 | 三维网格模型的剖切方法 |
CN109903389A (zh) * | 2019-01-21 | 2019-06-18 | 江苏艾佳家居用品有限公司 | 一种三维模型网格处理方法及系统 |
-
2019
- 2019-12-11 CN CN201911272731.0A patent/CN112651063B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441780A (zh) * | 2008-11-05 | 2009-05-27 | 武汉大学 | 三维网格模型的剖切方法 |
CN109903389A (zh) * | 2019-01-21 | 2019-06-18 | 江苏艾佳家居用品有限公司 | 一种三维模型网格处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112651063A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109360260B (zh) | 一种三角网格三维模型的切挖重构方法 | |
CN110084894B (zh) | 三维模型的局部放大展示方法、装置与电子设备 | |
CN105046750A (zh) | 一种自动分割全颌牙齿三角网格模型的方法 | |
CN107680168B (zh) | 三维重建中基于平面拟合的网格简化方法 | |
CN111921202B (zh) | 虚拟场景的数据处理方法、装置、设备及可读存储介质 | |
CN103268631A (zh) | 点云骨架提取方法及装置 | |
CN109615581A (zh) | 一种融合扩展高斯球和颜色几何特征的三维碎片的拼接复原方法 | |
CN115600307B (zh) | 一种从城市场景的Mesh模型中生成单体化建筑的方法 | |
CN112651063B (zh) | 一种创建户型整体网格模型的方法 | |
CN101359371B (zh) | 基于数字高程模型的建筑物自动提取的方法 | |
CN109671154A (zh) | 三角网格表示的曲面非迭代重新网格化方法 | |
CN109598782A (zh) | 基于三维建模技术的建筑文物修复方法、存储介质 | |
CN114782645B (zh) | 虚拟数字人制作方法、相关设备及可读存储介质 | |
CN110135397B (zh) | 一种识别三维牙齿模型中牙冠部分的方法 | |
CN113902887B (zh) | 三维可视边生成方法、系统、计算机及可读存储介质 | |
CN107491481B (zh) | Lod模型搜索方法及系统、建立lod模型数据库的方法和计算机可读的存储介质 | |
CN116310753A (zh) | 一种室外场景点云数据的矢量化骨架提取方法及系统 | |
JPH0694428A (ja) | 3次元形状入力装置 | |
CN111125825A (zh) | 古木建筑遗产智能化建模方法及装置 | |
Sivapriya et al. | Automatic reassembly of fragments for restoration of heritage site structures | |
CN107481314B (zh) | 一种基于kd树的阴影体优化方法 | |
CN110880173A (zh) | 空调底板的外轮廓提取方法及装置 | |
CN113808252B (zh) | 基于交互性标签和宏的三维模型逐级重建方法 | |
CN109558630B (zh) | 一种适用于地下空间的三维自动建模方法 | |
CN108876885A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |