CN104346832A - 一种三维自锁模型的生成方法 - Google Patents
一种三维自锁模型的生成方法 Download PDFInfo
- Publication number
- CN104346832A CN104346832A CN201410664520.2A CN201410664520A CN104346832A CN 104346832 A CN104346832 A CN 104346832A CN 201410664520 A CN201410664520 A CN 201410664520A CN 104346832 A CN104346832 A CN 104346832A
- Authority
- CN
- China
- Prior art keywords
- voxel
- model
- piece
- dimensional
- voxels
- 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.)
- Granted
Links
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/30—Polynomial surface description
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种三维自锁模型的生成方法,其包括:构造三维物体的体素模型,根据体素模型中每一体素所包含三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素,并根据外部体素与内部体素以及相邻外部体素间的连接强度来构造外部体素连接图;根据内部体素模型构造初始三维自锁模型,获得若干三维拼块的初始模型;根据外部体素连接图将所述外部体素贴附到初始三维拼块模型上,获得每个拼块的体素模型;将每个拼块的体素模型与三维物体的三角网格模型通过构造实体几何的方法做求交运算得到拼块的三角网格模型。通过采用本发明公开的方法可以快速地生成具有较为复杂外形的三维自锁模型,且生成的三维自锁模型可直接进行三维打印。
Description
技术领域
本发明涉及三维设计技术领域,尤其涉及一种三维自锁模型的生成方法。
背景技术
三维自锁模型(Interlocking Model)是由多个拼块组成的、可组装和拆解的三维几何结构;当所有拼块组装在一起时,这些拼块相互锁住,使得整个模型非常稳固。三维自锁模型的实际应用非常广泛,例如智力玩具、家具设计、和建筑设计等方面。
三维自锁模型有以下特征:当所有拼块组装在一起时,只有一个拼块可以移动(称为钥匙拼块),其他所有的拼块以及拼块的组合都是不可以移动的。三维自锁模型的基本原理是通过拼块相互之间的阻挡来实现它们之间的连接。因而组装好的自锁模型非常稳固,且不需要任何其他方法如胶水、螺丝等来连接拼块。由于拼块一般体积较大,通过自锁机制实现的拼块之间的连接往往较为结实。另外,组装好的自锁模型可以重复拆解和再次组装,因而便于模型的存储、运输、和维护。
目前设计三维自锁模型的主要方法是基于手工设计。但该方法费时耗力,例如有经验的工匠设计一个包含少量拼块(例如五个)的自锁模型一般需要一天或以上的时间。另外,通过手工方法设计出的自锁模型往往外形较为简单(例如方块形状)。因而,该方法不适合设计由大量拼块组成的、且具有任意形状的三维自锁模型。
发明内容
本发明的目的是提供一种三维自锁模型的生成方法,可以快速地生成具有较为复杂外形、且包含多个拼块的三维自锁模型。
本发明的目的是通过以下技术方案实现的:
一种三维自锁模型的生成方法,该方法包括:
构造三维物体的体素模型,根据所述体素模型中每一体素所包含三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素,并根据所述外部体素与内部体素以及相邻外部体素之间的连接强度来构造外部体素连接图;
根据所述内部体素模型构造初始三维自锁模型,获得若干初始的三维拼块;
根据所述外部体素连接图将所述外部体素贴附到所述初始的三维拼块模型上,获得由拼块组成的三维自锁模型。
进一步的,所述构造三维物体的体素模型包括:
计算三维物体模型的包围盒,并将该包围盒细分成分成辨率为W×H×D的体素正交网格;在所述体素正交网格中构造分辨率为(K×W+1)×(K×H+1)×(K×D+1)的均匀采样点网格,其中K为沿体素每个边的采样点的数量;通过射出(K×W+1)×(K×H+1)条经过(K×D+1)个采样点的平行射线并与三维物体求交点,来判断每个采样点在所述三维物体模型的内部或外部,进而根据采样点的位置状态建立物体的体素模型。
进一步的,该方法还包括:根据每一体素内采样点的位置状态来计算其所包含三维物体局部形状信息:
若某一体素的所有采样点均在所述三维物体的内部,则该体素为全体素,其包含物体局部形状的体积为当前体素的体积;若某一体素的所有采样点均在所述物体的外部,则该体素为空体素,其所包含物体局部形状的体积为零;若某一体素的采样点处于所述物体的外部与内部,则该体素为部分体素,其所包含物体局部形状的体积,通过计算该体素在物体内部采样点的数量来确定;
对于所述部分体素还包括:使用广度优先搜索的算法来搜索其在物体内部的邻近采样点,并通过判断能否搜索到所有在物体内部的采样点来确定该体素内物体局部形状是否连续;通过计算在和邻近体素接触面上物体内部采样点的数量来估算接触面的表面积。
进一步的,该方法还包括,对所述体素模型优化的步骤,其包括:
通过调整体素网格相对于三维物体模型的位置以及体素的大小来最小化异常体素的数量;所述异常体素为包含形状体积小于阈值或包含不连续局部形状的体素;
对于剩余的异常体素通过对物体模型进行局部变形的方法来去除,所述局部变形的方法如下:对于包含形状体积小于阈值的异常体素,先确定形状的中心VC、平均表面法向量以及最小包围球的半径r;对于包含不连续局部形状的异常体素,先确定每个局部形状的VC、以及r参数;再通过逐步移动物体三角网格模型上顶点的位置来实现局部变形;局部变形公式如下:
其中,Vi是物体三角网格模型上的顶点并位于以VC为中心、2r为半径的包围球内部,α是控制物体模型变形速度的参数,k是变形公式迭代的次数。
进一步的,所述根据所述体素模型中每一体素所包含三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素包括:
1)所述全体素均为内部体素;2)若某一部分体素所包含物体局部形状的体积大于预设值,六个面不存在接触面积小于阈值的面,且至少有一个邻近体素是全体素,则该部分体素为内部体素;否则,该部分体素为外部体素。
进一步的,所述根据所述内部体素模型构造初始三维自锁模型,获得若干初始的三维拼块包括:
从所述内部体素模型中抽取第一个拼块P1,剩下的内部体素模型被称为R1;其中,抽取P1的过程中确保[P1,R1]是可被拆解的,且P1只可以沿一个方向被移走;
依次从剩下的内部体素模型中抽取其他拼块Pi+1(i>0),剩下的部分被称为Ri+1;其中,抽取Pi+1的过程中确保[Pi+1,Ri+1]是可以被拆解的,并确保[Pi,Pi+1,Ri+1]三个拼块是相互自锁的且Pi是这个三个拼块中的钥匙拼块。
进一步的,从所述内部体素模型中抽取第一个拼块P1的步骤包括:
选择一个位于所述内部体素模型表面的体素作为种子体素S,并确定该种子体素S的目标移动方向di;
判断所述种子体素S所有可以移动的方向,在除目标移动方向di外的其他方向dj上,选择一对阻挡和被阻挡体素,并使用最短路径的方法连接种子体素S和被阻挡体素;其中,所述连接种子体素S和被阻挡体素时所涉及的体素均被选择;
选择所有位于拼块P1沿目标移动方向di上方的体素并分配给拼块P1;
判断当前所选择的体素数量是否达到预定值;若否,则选择拼块P1邻域内的体素直至拼块P1的体素达到预定数量,同时确保拼块P1的阻挡性和可移动性不改变,从而获得所述第一个拼块P1。
进一步的,从剩余内部体素模型中抽取其他拼块Pi+1的步骤包括:
将与上一个拼块Pi移动方向相垂直的方向作为拼块Pi+1的移动方向di+1;
从所述上一个拼块Pi的邻域内选择一个位于所述剩余内部体素模型表面的体素作为种子体素C;
在剩余内部体素模型内,确定阻挡所述种子体素C沿目标移动方向di+1移动的体素集合Sv,并使用最短路径的方法连接种子体素C和体素集合Sv;
判断当前所选择的体素数量是否达到预定值;若否,则选择拼块Pi+1邻域内的体素直至拼块Pi+1的体素达到预定数量,同时确保拼块Pi+1的阻挡性和可移动性不改变,从而获得拼块Pi+1。
进一步的,所述根据所述外部体素与内部体素以及相邻外部体素之间的连接强度来构造外部体素连接图包括:
所述外部体素连接图用于表示外部体素与内部体素以及相邻外部体素之间的连接强度;其中,所述外部体素与内部体素以及相邻外部体素之间的接触表面积越大,则表示连接强度越大。
进一步的,该方法还包括:
将所述由拼块组成的三维自锁模型中每个拼块的体素模型与所述三维物体的三角网格模型通过构造实体几何的方法做求交运算得到拼块的三角网格模型;将每个拼块的三角网格模型输入至三维打印机中进行打印,进而组装成实际的三维自锁模型。
由上述本发明提供的技术方案可以看出,通过构建三维物体的体素模型,并根据体素模型的内部体素与外部体素来构建由拼块组成的三维自锁模型,相比于现有技术只能制作较为简单的三维自锁模型且费时耗力而言,本发明可制作具有任意形状的三维自锁模型且具有较高的工作效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种三维自锁模型生成方法的流程图;
图2为本发明实施例提供的一种构造三维物体体素模型的示意图;
图3为本发明实施例提供的一种三维物体模型局部变形方法的示意图;
图4为本发明实施例提供的从内部体素模型中抽取第一个拼块P1的步骤示意图;
图5为本发明实施例提供的从内部体素模型中抽取其他拼块Pi+1的步骤示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
实施例
图1为本发明实施例提供的一种三维自锁模型生成方法的流程图。如图1所示,该方法以物体的三角网格模型作为输入,主要包括如下步骤:
步骤11、构造三维物体的体素模型,根据所述体素模型中每一体素所包含三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素,并根据所述外部体素与内部体素以及相邻外部体素之间的连接强度来构造外部体素连接图。
本步骤主要包括:构造三维物体的体素模型、计算每一体素所包含三维物体局部形状信息、对体素模型进行优化、以及区分内部体素与外部体素。下面针对上述四个方面做详细的介绍:
1、构造三维物体的体素模型
所述体素模型是指将三维物体的形状用称为“体素”的小立方体统一表示。体素(Voxel)可以理解为二维像素在三维空间的推广,它们是一组分布在正交网格中心的立方体单元。根据物体的三角网格模型建立其体素模型的过程称为“体素化”。其步骤如图2所示,主要包括:
首先,计算三维物体模型的包围盒,并将该包围盒细分成分成辨率为W×H×D的体素正交网格。为了便于理解,本发明实施例利用二维视角来示意所述体素正交网格,如图2a所示,为建立的兔子头部体素正交网格。
然后,在所述体素正交网格中构造分辨率为(K×W+1)×(K×H+1)×(K×D+1)的均匀采样点网格;其中K为沿体素每个边的采样点的数量。如图2b所示,为图2a中第1行第2-3列及第2行第2-3列体素中构造均匀采样点的示意图,其中K=6。
最后,为了确定每一体素中每一采样点的位置状态,本发明实施例通过射出(K×W+1)×(K×H+1)条经过(K×D+1)个采样点的平行射线并与三维物体求交点,来判断每个采样点在所述三维物体模型的内部或外部,进而根据采样点的位置状态建立物体的体素模型。
2、计算每一体素所包含三维物体局部形状信息
根据每一体素内采样点的位置状态计算其所包含三维物体局部形状的体积,可分为如下三种情况:1)若某一体素的所有采样点均在所述物体的内部,则该体素为全体素,其包含物体局部形状的体积为当前体素的体积;2)若某一体素的所有采样点均在所述物体的外部,则该体素为空体素,其所包含物体局部形状的体积为零;3)若某一体素的采样点处于所述物体的外部与内部,则该体素为部分体素,其所包含物体局部形状的体积,通过计算该体素在物体内部采样点的数量来确定。
另外,对于部分体素还需要判断其内部物体局部形状的连续性以及计算和邻近体素的接触表面积。具体来说,使用广度优先搜索的算法来搜索其在物体内部的邻近采样点,并通过判断能否搜索到所有在物体内部的采样点来确定体素内物体局部形状是否连续。通过计算在和邻近体素接触面上物体内部采样点的数量来估算接触面的表面积。
3、对体素模型进行优化
为了便于物体模型的分解使得生成的拼块不易于产生微小或不连续的形状特征,在体素化过程中需要避免生成包含微小形状(形状体积小于阈值)或不连续局部形状的体素(统称为异常体素)。本发明实施例采用下述方法对所述体素模型进行优化:
首先,通过调整体素网格相对于三维物体的位置以及体素的大小来最小化异常体素的数量。
然后,对于剩余的异常体素通过对物体模型进行局部变形的方法来去除。所述局部变形的方法如图3所示,对于包含形状体积小于阈值的异常体素,先确定形状的中心VC、平均表面法向量以及最小包围球的半径r(参见图3a);对于包含不连续局部形状的异常体素,先确定每个局部形状的VC、以及r参数(参见图3c)。再通过逐步移动物体三角网格模型上顶点的位置来实现局部变形(参见图3b与图3d);局部变形公式如下:
其中,Vi是物体三角网格模型上的顶点并位于以VC为中心、2r为半径的包围球内部,α是控制物体模型变形速度的参数(实验中一般设为0.01),k是变形公式迭代的次数。
4、区分内部体素与外部体素
本发明实施例所述的内部体素指包含较大块(大于预设值)物体局部形状的体素,其更适合用于构造具有较强连接强度的自锁结构;因而,本发明实施例根据所述体素模型中每一体素所包含的三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素:
1)所述全体素均为内部体素。
2)若某一部分体素所包含三维物体局部形状的体积大于预设值,六个面不存在接触面积小于阈值的面,且至少有一个邻近体素是全体素,则该部分体素为内部体素;否则,该部分体素为外部体素。
如前所述,所述内部体素可直接用于构造自锁结构,而为了确保构造出的三维自锁模型与对应三维物体模型之间的相似度,外部体素需要贴附在初始的拼块模型上。本发明实施例可以预先建立一个表示外部体素与内部体素以及相邻外部体素之间连接强度的外部体素连接图,即根据两个相邻体素内物体局部形状接触表面积的大小来判断二者的连接强度。其中,当所述外部体素与内部体素以及相邻外部体素之间的接触表面积越大,则表示连接强度越大。
步骤12、根据所述内部体素模型构造初始三维自锁模型,获得若干初始三维拼块。
根据三维自锁模型的特征,判断多个拼块是否自锁的时间复杂度与拼块的数量呈指数次关系,这导致直接生成包含大量拼块的自锁模型变得非常困难。为此,本发明实施例提出从内部体素模型(多个内部体素称之内部体素模型)中抽取拼块模型,同时保证所有构造的拼块之间直接是自锁的。
抽取步骤如下:首先,从所述内部体素模型中抽取第一个拼块P1,剩下的内部体素模型被称为R1;其中,抽取P1的过程中确保[P1,R1]是可被拆解的,且P1只可以沿一个方向被移走;然后,依次从剩下的内部体素模型中抽取其他拼块Pi+1(i>0),剩下的部分被称为Ri+1;其中,抽取Pi+1的过程中确保[Pi+1,Ri+1]是可以被拆解的,同时保证[Pi,Pi+1,Ri+1]三个拼块是相互自锁的、且Pi是这个三个拼块中的钥匙拼块;以此类推,直到所有的内部体素都被分配给拼块。
为了便于理解,下面结合附图4-5介绍抽取拼块的详细流程。
如图4所示,为从所述内部体素模型中抽取第一个拼块P1的步骤示意图,主要包括:
1)如图4a所示,选择一个位于所述内部体素模型表面的体素作为种子体素S,并确定该种子体素S的目标移动方向di。
2)如图4b-图4c所示,判断所述种子体素S所有可以移动的方向,在除目标移动方向di外的其他方向dj上,选择一对阻挡体素B和被阻挡体素,并使用最短路径的方法连接种子体素S和被阻挡体素,从而使得连接后的拼块不能沿dj移动;其中,所述连接种子体素S和被阻挡体素时所涉及的体素均被选择。
3)如图4d所示,为了使得拼块P1可以沿目标移动方向di移走,选择所有位于拼块P1沿目标移动方向di上方的体素并分配给拼块P1。
4)如图4e所示,判断当前所选择的体素数量是否达到预定值;若否,则选择拼块P1邻域内的体素直至拼块P1的体素达到预定数量,从而获得所述第一个拼块P1。在扩展拼块的过程中,为了确保拼块P1的阻挡性和可移动性不改变,对每一个已经阻挡的方向选择一个保留体素(如图4e中的A+x);该体素一直保留在剩余内部体素模型中而不被分配给当前拼块P1,从而保证拼块P1沿该方向始终不可移动。
如图5所示,为从所述内部体素模型中抽取其他拼块Pi+1的步骤示意图,其方法与抽取拼块P1类似,主要包括:
1)如图5a-图5b所示,将与上一个拼块Pi移动方向相垂直的方向作为Pi+1的移动方向di+1,从而保证拼块Pi+1和Pi不可以一起同时被移走。示例性的,如图5b中上一个拼块Pi移动方向为朝右移动,若选择种子体素为C1则Pi+1朝上移动,若选择种子体素为C2则Pi+1朝下移动。
2)如图5c所示,在上一个拼块Pi的邻域内选择一个位于所述剩余内部体素模型表面的体素作为种子体素C。
3)如图5d所示,在剩余内部体素模型内,确定阻挡所述种子体素C沿目标移动方向di+1移动的体素集合Sv;然后使用最短路径的方法连接种子体素C和体素集合Sv,并将涉及的体素分配给拼块Pi+1,从而使其可以沿目标移动方向移动(当Pi已经被移走时)。
4)如图5e所示,判断当前所选择的体素数量是否达到预定值;若否,则选择拼块Pi+1邻域内的体素直至拼块Pi+1的体素达到预定数量,同时确保拼块Pi+1的阻挡性和可移动性不改变,从而获得拼块Pi+1;同样,在扩展时对每一个Pi+1已经被阻挡的方向会选择一个保留体素A。
步骤13、根据所述外部体素连接图将所述外部体素贴附到所述初始三维拼块模型上,获得由拼块组成的三维自锁模型。
根据内部体素建立初始自锁模型后,外部体素需要被贴附到初始的自锁模型上。
本发明实施例使用迭代的方法逐一贴附外部体素,直到所有的外部体素都被包含到拼块模型中。贴附外部体素时,需要考虑以下两个约束:
1)组装好的自锁模型还是可拆解的。为此,贴附外部体素给选定拼块后,需要检查每个拼块的可移动性;只有当每个拼块都是可被拆解的,这样的贴附过程才是有效的。
2)被贴附后的拼块具有较强的连接强度从而是可打印的。本发明实施例使用步骤11时预先建立的外部体素连接图来指导外部体素贴附,以确保只有当外部体素和拼块之间具有较强连接强度时,才将该外部体素贴附给对应的拼块。
另外,通过以上方法生成的拼块模型还是以体素为基本单元。为了得到拼块的三角网格模型,将所述由拼块组成的三维自锁模型中每个拼块的体素模型与所述三维物体的三角网格模型通过构造实体几何的方法做求交运算;再将每个拼块的三角网格模型直接输入至三维打印机中进行打印,打印出的拼块可以被重复组装和拆解,且组装好的拼块相互自锁在一起构成三维自锁模型。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种三维自锁模型的生成方法,其特征在于,该方法包括:
构造三维物体的体素模型,根据所述体素模型中每一体素所包含三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素,并根据所述外部体素与内部体素以及相邻外部体素之间的连接强度来构造外部体素连接图;
根据所述内部体素模型构造初始三维自锁模型,获得若干初始的三维拼块;
根据所述外部体素连接图将所述外部体素贴附到所述初始的三维拼块模型上,获得由拼块组成的三维自锁模型。
2.根据权利要求1所述的方法,其特征在于,所述构造三维物体的体素模型包括:
计算三维物体模型的包围盒,并将该包围盒细分成分成辨率为W×H×D的体素正交网格;在所述体素正交网格中构造分辨率为(K×W+1)×(K×H+1)×(K×D+1)的均匀采样点网格,其中K为沿体素每个边的采样点的数量;通过射出(K×W+1)×(K×H+1)条经过(K×D+1)个采样点的平行射线并与三维物体求交点,来判断每个采样点在所述三维物体模型的内部或外部,进而根据采样点的位置状态建立物体的体素模型。
3.根据权利要求1或2所述的方法,其特征在于,该方法还包括:根据每一体素内采样点的位置状态来计算其所包含三维物体局部形状信息:
若某一体素的所有采样点均在所述三维物体的内部,则该体素为全体素,其包含物体局部形状的体积为当前体素的体积;若某一体素的所有采样点均在所述物体的外部,则该体素为空体素,其所包含物体局部形状的体积为零;若某一体素的采样点处于所述物体的外部与内部,则该体素为部分体素,其所包含物体局部形状的体积,通过计算该体素在物体内部采样点的数量来确定;
对于所述部分体素还包括:使用广度优先搜索的算法来搜索其在物体内部的邻近采样点,并通过判断能否搜索到所有在物体内部的采样点来确定该体素内物体局部形状是否连续;通过计算在和邻近体素接触面上物体内部采样点的数量来估算接触面的表面积。
4.根据权利要求1所述的方法,其特征在于,该方法还包括,对所述体素模型优化的步骤,其包括:
通过调整体素网格相对于三维物体模型的位置以及体素的大小来最小化异常体素的数量;所述异常体素为包含形状体积小于阈值或包含不连续局部形状的体素;
对于剩余的异常体素通过对物体模型进行局部变形的方法来去除,所述局部变形的方法如下:对于包含形状体积小于阈值的异常体素,先确定形状的中心VC、平均表面法向量以及最小包围球的半径r;对于包含不连续局部形状的异常体素,先确定每个局部形状的VC、以及r参数;再通过逐步移动物体三角网格模型上顶点的位置来实现局部变形;局部变形公式如下:
其中,Vi是物体三角网格模型上的顶点并位于以VC为中心、2r为半径的包围球内部,α是控制物体模型变形速度的参数,k是变形公式迭代的次数。
5.根据权利要求3所述的方法,其特征在于,所述根据所述体素模型中每一体素所包含三维物体局部形状以及和相邻体素接触的表面积来确定内部体素与外部体素包括:
1)所述全体素均为内部体素;2)若某一部分体素所包含物体局部形状的体积大于预设值,六个面不存在接触面积小于阈值的面,且至少有一个邻近体素是全体素,则该部分体素为内部体素;否则,该部分体素为外部体素。
6.根据权利要求1所述的方法,其特征在于,所述根据所述内部体素模型构造初始三维自锁模型,获得若干初始的三维拼块包括:
从所述内部体素模型中抽取第一个拼块P1,剩下的内部体素模型被称为R1;其中,抽取P1的过程中确保[P1,R1]是可被拆解的,且P1只可以沿一个方向被移走;
依次从剩下的内部体素模型中抽取其他拼块Pi+1(i>0),剩下的部分被称为Ri+1;其中,抽取Pi+1的过程中确保[Pi+1,Ri+1]是可以被拆解的,并确保[Pi,Pi+1,Ri+1]三个拼块是相互自锁的且Pi是这个三个拼块中的钥匙拼块。
7.根据权利要求6所述的方法,其特征在于,从所述内部体素模型中抽取第一个拼块P1的步骤包括:
选择一个位于所述内部体素模型表面的体素作为种子体素S,并确定该种子体素S的目标移动方向di;
判断所述种子体素S所有可以移动的方向,在除目标移动方向di外的其他方向dj上,选择一对阻挡和被阻挡体素,并使用最短路径的方法连接种子体素S和被阻挡体素;其中,所述连接种子体素S和被阻挡体素时所涉及的体素均被选择;
选择所有位于拼块P1沿目标移动方向di上方的体素并分配给拼块P1;
判断当前所选择的体素数量是否达到预定值;若否,则选择拼块P1邻域内的体素直至拼块P1的体素达到预定数量,同时确保拼块P1的阻挡性和可移动性不改变,从而获得所述第一个拼块P1。
8.根据权利要求6或7所述的方法,其特征在于,从剩余内部体素模型中抽取其他拼块Pi+1的步骤包括:
将与上一个拼块Pi移动方向相垂直的方向作为拼块Pi+1的移动方向di+1;
从所述上一个拼块Pi的邻域内选择一个位于所述剩余内部体素模型表面的体素作为种子体素C;
在剩余内部体素模型内,确定阻挡所述种子体素C沿目标移动方向di+1移动的体素集合Sv,并使用最短路径的方法连接种子体素C和体素集合Sv;
判断当前所选择的体素数量是否达到预定值;若否,则选择拼块Pi+1邻域内的体素直至拼块Pi+1的体素达到预定数量,同时确保拼块Pi+1的阻挡性和可移动性不改变,从而获得拼块Pi+1。
9.根据权利要求1所述的方法,其特征在于,所述根据所述外部体素与内部体素以及相邻外部体素之间的连接强度来构造外部体素连接图包括:
所述外部体素连接图用于表示外部体素与内部体素以及相邻外部体素之间的连接强度;其中,所述外部体素与内部体素以及相邻外部体素之间的接触表面积越大,则表示连接强度越大。
10.根据权利要求1所述的方法,其特征在于,该方法还包括:
将所述由拼块组成的三维自锁模型中每个拼块的体素模型与所述三维物体的三角网格模型通过构造实体几何的方法做求交运算得到拼块的三角网格模型;将每个拼块的三角网格模型输入至三维打印机中进行打印,进而组装成实际的三维自锁模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410664520.2A CN104346832B (zh) | 2014-11-19 | 2014-11-19 | 一种三维自锁模型的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410664520.2A CN104346832B (zh) | 2014-11-19 | 2014-11-19 | 一种三维自锁模型的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346832A true CN104346832A (zh) | 2015-02-11 |
CN104346832B CN104346832B (zh) | 2017-11-07 |
Family
ID=52502369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410664520.2A Active CN104346832B (zh) | 2014-11-19 | 2014-11-19 | 一种三维自锁模型的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346832B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106097438A (zh) * | 2016-06-07 | 2016-11-09 | 中国科学技术大学 | 一种三维自锁多面体的生成方法 |
WO2017080135A1 (zh) * | 2015-11-10 | 2017-05-18 | 山东大学 | 一种面向3d打印的模型分解与排列方法 |
CN109615691A (zh) * | 2018-11-27 | 2019-04-12 | 中国科学技术大学 | 积木模型生成系统 |
US20210004503A1 (en) * | 2016-09-14 | 2021-01-07 | Mixed Dimensions Inc. | 3d model validation and optimization system and method thereof |
US12026923B2 (en) | 2021-12-15 | 2024-07-02 | Hewlett-Packard Development Company, L.P. | Object model encodings |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1210154A1 (en) * | 1999-08-05 | 2002-06-05 | Stephen J. Winter | Interlocking solid puzzles with sliding control mechanisms |
CN201076767Y (zh) * | 2007-05-30 | 2008-06-25 | 维拉斯·常派布恩 | 多功能积木 |
CN102802744A (zh) * | 2009-06-19 | 2012-11-28 | 4D都市风景亚洲有限公司 | 具有地理区域的三维表示的拼图 |
WO2013141763A2 (ru) * | 2012-03-22 | 2013-09-26 | Muravyev Oleg Ivanovich | Головоломка и игра 3d пазлы (варианты) |
-
2014
- 2014-11-19 CN CN201410664520.2A patent/CN104346832B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1210154A1 (en) * | 1999-08-05 | 2002-06-05 | Stephen J. Winter | Interlocking solid puzzles with sliding control mechanisms |
CN201076767Y (zh) * | 2007-05-30 | 2008-06-25 | 维拉斯·常派布恩 | 多功能积木 |
CN102802744A (zh) * | 2009-06-19 | 2012-11-28 | 4D都市风景亚洲有限公司 | 具有地理区域的三维表示的拼图 |
WO2013141763A2 (ru) * | 2012-03-22 | 2013-09-26 | Muravyev Oleg Ivanovich | Головоломка и игра 3d пазлы (варианты) |
WO2013141763A3 (ru) * | 2012-03-22 | 2014-04-03 | Muravyev Oleg Ivanovich | Головоломка и игра 3d пазлы (варианты) |
Non-Patent Citations (3)
Title |
---|
FAKIR S. NOORUDDIN ET AL.: "Simplification and repair of polygonal models using volumetric techniques", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 * |
PENG SONG ET AL.: "Recursive interlocking puzzles", 《ACM TRANSACTIONS ON GRAPHICS》 * |
SHIQING XIN ET AL.: "Making burr puzzles from 3D models", 《ACM TRANSACTIONS ON GRAPHICS》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017080135A1 (zh) * | 2015-11-10 | 2017-05-18 | 山东大学 | 一种面向3d打印的模型分解与排列方法 |
CN106097438A (zh) * | 2016-06-07 | 2016-11-09 | 中国科学技术大学 | 一种三维自锁多面体的生成方法 |
CN106097438B (zh) * | 2016-06-07 | 2019-04-26 | 中国科学技术大学 | 一种三维自锁多面体的生成方法 |
US20210004503A1 (en) * | 2016-09-14 | 2021-01-07 | Mixed Dimensions Inc. | 3d model validation and optimization system and method thereof |
US11829686B2 (en) * | 2016-09-14 | 2023-11-28 | Integral Reality Labs, Inc. | 3D model validation and optimization system and method thereof |
CN109615691A (zh) * | 2018-11-27 | 2019-04-12 | 中国科学技术大学 | 积木模型生成系统 |
CN109615691B (zh) * | 2018-11-27 | 2022-10-28 | 中国科学技术大学 | 积木模型生成系统 |
US12026923B2 (en) | 2021-12-15 | 2024-07-02 | Hewlett-Packard Development Company, L.P. | Object model encodings |
Also Published As
Publication number | Publication date |
---|---|
CN104346832B (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346832A (zh) | 一种三维自锁模型的生成方法 | |
CN109815604B (zh) | 基于建筑要素拓扑关系的bim室内空间连通图构建方法 | |
CN107862738B (zh) | 一种基于移动激光测量点云进行室内结构化三维重建方法 | |
Badenko et al. | Scan-to-BIM methodology adapted for different application | |
CN102194253B (zh) | 一种面向三维地质层面结构的四面体网格生成方法 | |
CN104504754B (zh) | 一种油气储层多点统计建模的方法及装置 | |
Qin et al. | Automated reconstruction of parametric bim for bridge based on terrestrial laser scanning data | |
CN105261068A (zh) | 基于Micro-CT技术的储层岩心三维实体模型重构方法 | |
Lohou et al. | A 3D 12-subiteration thinning algorithm based on P-simple points | |
CN105653800A (zh) | 一种料场散料堆形参数的计算方法 | |
CN104851126A (zh) | 基于广义圆柱体的三维模型分割方法及装置 | |
CN105975655A (zh) | 一种基于bim的仿唐宋古建异形屋面瓦参数化建模方法 | |
CN111932669A (zh) | 一种基于边坡岩体特征对象的变形监测方法 | |
CN105205865B (zh) | 一种适用于岩体的建模方法 | |
CN105404898A (zh) | 一种松散型点云数据分割方法和设备 | |
CN106814699A (zh) | 一种五轴增材几何仿真方法 | |
Sun et al. | Data processing workflows from low-cost digital survey to various applications: Three case studies of Chinese historic architecture | |
CN105225272A (zh) | 一种基于多轮廓线三角网重构的三维实体建模方法 | |
CN105184854A (zh) | 针对地下空间扫描点云成果数据的快速建模方法 | |
Guo et al. | 3D modeling for mine roadway from laser scanning point cloud | |
CN109493425A (zh) | 一种矿山三维采空区实体模型的建立方法 | |
CN109712241A (zh) | 一种包含采空区的三维矿山实体模型的建立方法 | |
CN108595857B (zh) | 铁路线路防护栅栏自动设计方法 | |
CN115290930A (zh) | 一种考虑非常规储层多组分特征的数字岩心随机构建方法 | |
CN105894575B (zh) | 道路的三维建模方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |