一种室内设计中物件查找方法及系统与流程

文档序号:17733015发布日期:2019-05-22 02:59阅读:343来源:国知局
一种室内设计中物件查找方法及系统与流程

本发明提供了基于室内环境的自定义区域查找物体模型以及局部空间范围内查找相邻物体的方法,属于计算机辅助设计技术领域。



背景技术:

在进行计算机室内设计的过程中,通常需要进行对物件距离的判定、查找邻近物件等操作。然而,目前现有的设计软件中,存在着计算效率低、对硬件要求高的问题。因此,需要提出一种简单、高效的室内设计中物件查找方法。



技术实现要素:

本发明公开了一种基于室内环境,可以自定义固定区域,获得该区域内的物体模型并获取其编号,以及指定其中某个物体模型,给出距离约束,得到这个三维空间距离约束内的所有物体模型的方法。

技术方案是:

本发明的第一个方面,提供了:

一种室内设计中区域内物件查找方法,包括如下步骤:

获取室内中的多个物件的网格模型,所述的网格模型用三维点坐标数值;

选取需要查找的区域中的一个点的坐标;

在所述的坐标周围确定出一个区域,所述的区域的外表面采用网格进行表示;

采用三维点坐标数值对所述的网格模型是否存在于所述的区域内进行判定。

在一个实施方式中,所述的物件上都通过id进行标识。

在一个实施方式中,所述的多个物件是室内设计中的全部物件。

在一个实施方式中,所述的区域是用该区域对应的边界坐标构建的网格形式来表达。

在一个实施方式中,所述的区域中的一个点是指室内的中心点。

在一个实施方式中,所述的区域可以是长方体、正方体或者其它立方体,柱体等等。

在一个实施方式中,所述的区域是球体。

在一个实施方式中,所述的区域中的一个点位是指所述的区域的中心点。

在一个实施方式中,对所述的长方体、正方体或者球体等进行表面离散化,得到三角面片数值集。

在一个实施方式中,所述的物件的表面全部的点都位于所述的区域内部时,将该物件进行记录。

本发明的第二个方面,提供了:

一种室内设计中相邻物件查找方法,包括如下步骤:

由上述的室内设计中区域内物件查找方法获得区域内的所有物件;

从所述的物件中选定需要查找的待查物件;

设定需要查找的物件的周围区域距离阈值;

计算出其它物件与待查物件之间的距离;

统计出与待查物件的距离小于周围区域距离阈值的物件。

本发明的第三个方面,提供了:

一种室内设计中区域内物件查找系统,包括:

网格模型获取模块,网格模型获取模块,获取室内中的多个物件的网格模型,所述的网格模型用三维点坐标数值;

中心点选取模块,用于选取需要查找的区域中的一个点的坐标;

区域确定模块,在所述的坐标周围确定出一个区域,所述的区域的外表面采用网格进行表示;

判定模块,采用三维点坐标数值对所述的网格模型是否存在于所述的区域内进行判定。

在一个实施方式中,所述的物件上都通过id进行标识。

在一个实施方式中,所述的多个物件是室内设计中的全部物件。

在一个实施方式中,所述的区域中的一个点是指室内的中心点。

在一个实施方式中,所述的区域是长方体、正方体或者其它立方体、柱体。

在一个实施方式中,所述的区域是球体。

在一个实施方式中,所述的区域中的一个点位是指所述的区域的中心点。

在一个实施方式中,还包括:离散化处理模块,用于对所述的长方体、正方体、或者其它立方体、柱体、球体等进行表面离散化,得到三角面片数值集。

在一个实施方式中,还包括:统计模块,用于对于当所述的物件的表面全部的点都位于所述的区域内部时,将该物件进行记录。

本发明的第四个方面,提供了:

一种室内设计中相邻物件查找系统,包括:

物件获取模块,用于获取由上述的室内设计中区域内物件查找系统获得的区域内的所有物件;

待查物件确定模块,用于从所述的物件中选定需要查找的待查物件;

阈值确定模块,用于设定需要查找的物件的周围区域距离阈值;

距离确定模块,用于计算出其它物件与待查物件之间的距离;

统计模块,用于统计出与待查物件的距离小于周围区域距离阈值的物件。

本发明的五个方面,提供了:

记录有可以运行上述的室内设计中区域内物件查找方法的程序的计算机可读介质。

本发明的六个方面,提供了:

记录有可以运行上述的室内设计中相邻物件查找方法的程序的计算机可读介质。

有益效果

在室内环境下,可以快速查找相应的整个室内区域或者自定义局部区域内的物体模型,而且可以查找距离指定某个物体模型一定距离范围约束下的附近物体模型,这样有利于用户在家装设计过程中快速精确地配置装修物件。

本发明具有对硬件要求低、计算效率高的优点。

附图说明

图1是构建长方体(或正方体)网格流程图。

图2.构建区域示意图

图3.构建三角网格或者四边形网格示例(左侧add_face(p1,p2,p3)构建一个三角形;右侧add_face(p1,p2,p3,p4)构建一个四边形)

图4是求两个模型之间最短距离的流程图。

图5.根据网格模型的面片集合构建查找树状结构的示意图

具体实施方式

为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。应当理解,给出这些示例性实施例仅是为了使相关领域的技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。

如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。

虽然本申请对根据本申请的实施例的系统中的某些系统、模块或单元做出了各种引用,然而,任何数量的不同模块可以被使用并运行在客户端和/或服务器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。

同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

本发明的方法,可以包含两个功能,一种是对室内设计中区域内物件查找,另一种是对室内设计中相邻物件查找。

对于第一种,如图1所示,其主要的步骤是:

获取室内中的多个物件的网格模型,所述的网格模型用三维点坐标数值;

选取需要查找的区域中的一个点的坐标;

在所述的坐标周围确定出一个区域,并基于该坐标为中心点生成一个区域的外表面,此外表面所包围的空间为所述的区域,即由该区域外表面构建表面网格,该网格的内部空间;

采用待确定空间位置的网格模型的三维点坐标数值以及构建好的区域外表面网格模型对所述的待确定空间位置的网格模型是否存在于所述的区域内进行判定。

其主要流程如下:

1.在室内设计的过程中,导入室内所有物体的网格模型,所述的网格模型用三维点坐标数值,以及这些点构成的三角形、四边形或者其它多边形表达(例如:导入物体的所有文件,它们可以是单个三维表面网格模型或者多个三维表面网格模型的组合,每单个网格模型的文件名的后缀有个id号);这里的物件可以是各类家具,也可以是室内使用的一些物品。这里采用网格模型的目的是可以将各个物件用外表面的三维点坐标以及这些点集之间的连接关系(外表面可以用三角形集合来表面或者四边形等其它多边形)表示,其运算效率较高。

2.2.定义局部区域,所述的区域是用该区域对应的边界坐标构建的网格形式来表达,本步骤中局部区域的目的是为了获得符合在某一特定区域内的物体,具体的方法如下:

2.1.定义三维空间内的一点坐标(例如:p(x,y,z))(默认情况下p为室内三维空间的近似中心位置,即室内每个墙角以及地面角落顶点坐标的均值),或者该点为用户在室内自定义的一点坐标;

2.2.设置距离点p在x轴方向的距离dx,在y轴方向的距离dy,在z轴方向的距离dz,

形成一个点p作为长方体(或正方体)的体心,2dx作为长度,2dy作为宽度,2dz作为高度;当然设置的方法不仅仅局限于此,也可以设置p为球心,给出一个球的半径r,形成一个球;不管是长方体,正方体还是球都是以网格的形式构成,记为localregionsurface(默认情况下:dx,dy,dz分别为在x轴方向上p到墙体的距离,在y轴方向上p到墙体的距离,在z轴方向上p到墙体的距离,用户也可以自定义设置(dx,dy,dz)。具体构建长方体(或正方体)的表面网格流程见图1,构建球体表面网格的过程原理与构建长方体类似,本质上就是用球体表面离散化的点坐标,然后构成三角面片集合;所述的区域可以是长方体、正方体或者其它立方体,柱体等等。

另外,以上的区域的形状没有特别限定,主要是根据家居设计过程中所需要考察的区域来进行确定。在一些比较优选的方式条件下,是采用上述的长方形或者球形的区域,

3.依次判定步骤1中的网格模型是否在localregionsurface网格内部,具体方法如下:

3.1.依次读取模型中的点,判定是否在网格localregionsurface的内部;

3.2.若上述步骤中模型的每一点都在网格localregionsurface的内部,则记录该网格模型,并记录其id号;

3.3.将所有在网格localregionsurface内部的模型记录并存储下来;

对于第二种功能,如图2所示,本步骤是需要基于上述第一方面功能作为基础,采用这样的设计构思主要是:采用上述的区域内物体进行判定时,可以先预先得到一个较小的区域,这种区域内物体判定的过程中,计算量较小,只需要直接运算物体的网格点是不是在所述的区域内即可;而如果在房间的全空间内进行直接计算物体周围的邻近物体时,通过网格坐标计算时,其计算量较大,程序运行效率低;而直接通过区域划定之后,再在这个区域内的物体进行距离判定计算时,显著地减小了计算量;还有可以让用户自定义查找范围,减少计算量的同时,更有目的性。

其主要流程如下:

1.定义局部三维空间区域localregion,具体方法如下:

1.1.设置三维空间内一点localp(x,y,z);

1.2.生成局部封闭网格:按照上述i中2.2的方法设置dx,dy,dz形成一个封闭的长方体(正方体)等几何体,或者以localp为球心,r为球径设置球(长方体,正方体,球都是网格的形式);

1.3.按照上述i的方法得到localregion内的所有网格模型,指定其中任意一个网格模型thismodel,比如一个椅子模型;

1.4.设置一个距离约束值mindistance(到thismodel的最小距离);

1.5.逐一计算localregion区域内除thismodel之外的所有网格模型到thismodel的最小距离(两个网格模型之间最小距离的算法流程见图2),并依次判定是否小于或等于mindistance,若满足小于或等于mindistance的条件则记录该网格模型并保存id下来。

计算两个网格模型之间的最短距离的流程如下:

(1)依次读取两个网格模型的数据,包括网格模型上每一三角面的face_id以及每一face上包含的点坐标数值;

(2)选择其中一个模型,例如命名为thismodel,计算这个模型的包围盒(boundingbox)(即根据thismodel上所有的点坐标数据,计算x坐标最大值xmax及最小值xmin,y坐标最大值ymax及最小值ymin,z坐标最大值zmax及最小值zmin。

以下面八个点:

p1(xmax,ymax,zmax),p2(xmin,ymax,zmax),

p3(xmin,ymax,zmin),p4(xmax,ymax,zmin),

p5(xmax,ymin,zmax),p6(xmin,ymin,zmax),

p7(xmin,ymin,zmin),p8(xmax,ymin,zmin)

构建thismodel的包围盒;

(3)依据(2)中包围盒的区域,选择该区域外的一个合适平面将网格模型上每一三角面片上的点沿着某一平面投影,例如全部投影到z平面(位于包围盒区域之外且平行于z轴的平面),得到投影后的每一面上点坐标对应的投影点数据;

(4)根据上述(3)中投影后的每一面的点坐标数据构建查找树tree(构建查找树的流程示意如图5所示):

构建树tree的流程如下:

i.把投影后的第一个面face_1加入到树结构中,作为根节点;

ii.把投影后的第二个面face_2加入到树结构中,这时需要和根节点做比较,判断根节点的区域是否和face_2的区域有交集,如果有交集,就判断子节点是否和face_2的区域有交集,如果都没有就判断face_2分别加入子节点区域后的面积,找到区域范围最小的,然后组合;如果face_2与根节点没有交集,就把face_1和face_2当作一个整体重新构建轮廓(如图5所示),并生成face_1和face_2的父节点;

iii.把投影后的第三个面face_3加入到树中,判断是否于根节点有交集,具体方法与ii中方法一样,然后依次把投影后的剩下的所有面依次按上述方法判定,最终得到所有投影面的树状结构,所有投影后的面将会在树的叶节点上,树中除叶节点外,所有的父节点存的都是所包含的叶子节点上投影面组合的空间坐标位置信息(即包含叶子节点所有面区域的轮廓矩形的四个点的坐标)。

(5)读取另一个网格模型(othermodel)上的点坐标,设为pointa,然后将该点投影到步骤(3)中的平面,得到投影点坐标projectiona。根据projectiona以及步骤(4)中构建的树状结构tree,判定projectiona是否落在tree中,从根节点往下到叶子节点递归查找projectiona所落在的具体区域,然后找到对应的投影face_target,从而得到初始网格模型的原始face_id,通过pointa与projectiona构成线段segmenta,以及初始面face_id形成的平面planea,最后进行segmenta与planea进行求交得到交点坐标intersecta。计算点pointa与intersecta之间的距离distancea,作为点a到网格模型thismodel的距离,存到距离集合disset中;

(6)依次重复(5)中的方法,将网格模型othermodel上所有其它的点依次计算求出相应的点到网格模型thismodel的距离,并存到距离集合disset中,找到距离集合disset中的最小值mindis,该值作为两个网格模型之间的最短距离。

通过以上的方法,就可以快速地区域在室内某一个物件附近的设定距离内的其它物件。

基于以上的方法,本发明还提供了实现这两种功能的系统。

一种室内设计中区域内物件查找系统,包括:

网格模型获取模块,网格模型获取模块,获取室内中的多个物件的网格模型,所述的网格模型用三维点坐标数值;

中心点选取模块,用于选取需要查找的区域中的一个点的坐标;

区域确定模块,在所述的坐标周围确定出一个区域,所述的区域的外表面采用网格进行表示;

判定模块,采用三维点坐标数值对所述的网格模型是否存在于所述的区域内进行判定。

在一个实施方式中,所述的物件上都通过id进行标识。

在一个实施方式中,所述的多个物件是室内设计中的全部物件。

在一个实施方式中,所述的区域中的一个点是指室内的中心点。

在一个实施方式中,所述的区域是长方体、正方体或者其它立方体、柱体。

在一个实施方式中,所述的区域是球体。

在一个实施方式中,所述的区域中的一个点位是指所述的区域的中心点。

在一个实施方式中,还包括:离散化处理模块,用于对所述的长方体、正方体、或者其它立方体、柱体、球体等进行表面离散化,得到三角面片数值集。

在一个实施方式中,还包括:统计模块,用于对于当所述的物件的表面全部的点都位于所述的区域内部时,将该物件进行记录。

一种室内设计中相邻物件查找系统,包括:

物件获取模块,用于获取由上述的室内设计中区域内物件查找系统获得的区域内的所有物件;

待查物件确定模块,用于从所述的物件中选定需要查找的待查物件;

阈值确定模块,用于设定需要查找的物件的周围区域距离阈值;

距离确定模块,用于计算出其它物件与待查物件之间的距离;

统计模块,用于统计出与待查物件的距离小于周围区域距离阈值的物件。

另外,本发明还提供了记录有可以运行上述的室内设计中区域内物件查找方法的程序的计算机可读介质。

另外,本发明还提供了记录有可以运行上述的室内设计中相邻物件查找方法的程序的计算机可读介质。

此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。

本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1