CN115359177A - 一种基于晶格链的三维模型构建及变形方法 - Google Patents
一种基于晶格链的三维模型构建及变形方法 Download PDFInfo
- Publication number
- CN115359177A CN115359177A CN202210871928.1A CN202210871928A CN115359177A CN 115359177 A CN115359177 A CN 115359177A CN 202210871928 A CN202210871928 A CN 202210871928A CN 115359177 A CN115359177 A CN 115359177A
- Authority
- CN
- China
- Prior art keywords
- module
- chain
- modules
- rod
- rectangular pyramid
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000010276 construction Methods 0.000 title claims abstract description 10
- 230000002441 reversible effect Effects 0.000 claims abstract description 33
- 239000011229 interlayer Substances 0.000 claims abstract description 17
- 239000010410 layer Substances 0.000 claims description 161
- 238000004364 calculation method Methods 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000005457 optimization Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 239000013589 supplement Substances 0.000 claims description 8
- 238000010845 search algorithm Methods 0.000 claims description 6
- 230000000295 complement effect Effects 0.000 claims description 5
- 230000001502 supplementing effect Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 229910052731 fluorine Inorganic materials 0.000 claims 1
- 125000001153 fluoro group Chemical group F* 0.000 claims 1
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 4
- 230000009466 transformation Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000013216 cat model Methods 0.000 description 8
- 230000003252 repetitive effect Effects 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 2
- 238000010146 3D printing Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明属于三维可变形模型重构领域,公开了一种基于晶格链的三维模型构建及变形方法。方法整体采用贪心思想:对输入的三维模型,首先计算基本模块的父级模块——四棱锥模块的树连接设计,再以父模块为单位求解杆状模块子链的局部最优解并连接生成最优链。对父模块的树连接,提出先分层求解其链连接路径后做层间连接,再连接遗留模块作为树节点的方式。对杆状模块子链的求解,提出基于状态匹配的配置方法。此外,提出基于反向模块的杆状模块链轮廓优化方法。本发明可以将任意三维模型构建成以晶格链为基本结构的三维可变形模型,从而实现多形状间的相互变换。发明提出的算法可以应用在建筑结构、艺术造型设计等领域。
Description
技术领域
本发明属于三维可变形模型重构领域,尤其涉及一种基于晶格链的三维模型构建及变形方法。
背景技术
三维可变形模型是一种构形可以变化的三维模型,其构形变化可以通过各部件间相互旋转或者平移实现。随着3D打印技术的发展,三维可变形模型愈加成为一个活跃的研究话题,可用于设计各种用途的物体,具有重要研究意义。
在目前的研究中,部件互异的三维可变形模型设计中较为典型的研究方法为以三维骨架为参考分割目标模型的方式,多存在迭代算法复杂、运算时间长等问题。部件相同的三维可变形模型简化了模型表达和计算,但现存研究里,模块间自由度较高、除相连模块之外各模块间无相互固定方式,因而存在整体构形紧密性较低的问题。
而晶格链结构(参见Xu Z,McCann C,Dollar A M.Reconfigurable ModularChain:A Reversible Material for Folding Three-Dimensional Lattice Structures[J].Journal of Mechanisms and Robotics,2017,9(2):025002.)作为一种相邻模块间相对位置关系数量有限,且排布具有一定规律性的链结构,能够构成结构稳定的模型构形。但晶格链结构也存在构形较为复杂、求解空间大的问题,如何快速基于晶格链实现三维模型的构建及形状变换是研究的难点。
发明内容
本发明目的在于提供一种基于晶格链的三维模型构建及变形方法,以解决上述的技术问题。
为解决上述技术问题,本发明的一种基于晶格链的三维模型构建及变形方法的具体技术方案如下:
一种基于晶格链的三维模型构建及变形方法,包括如下步骤:
步骤1:对输入模型进行划分,将模型转换为四棱锥模块的集合;
步骤2:将四棱锥模块集合连接成树结构,先采用基于层次的方法计算连接尽可能多的四棱锥模块的最长链,再连接遗留的模块作为树节点;
步骤3:对四棱锥模块树内的每个四棱锥模块进行杆状模块链配置,采用基于状态匹配的方法,构建杆状模块子链并连接构成初步晶格链构形;
步骤4:对初步晶格链构形进行轮廓优化,设计轮廓补充的匹配规则,根据反向四棱锥模块构建补充杆状模块链,并连入初步晶格链构形中构成最终晶格链构形。
进一步地,所述步骤1为了获取模型的杆状模块链构形,先将其转换为由多个四棱锥模块组成的集合,每个四棱锥模块的每一条棱都作为后续放置杆状子模块的参考,输入模型被分割为多个棱长均为单位长度1的四棱锥,这个过程被称为模型划分,得到的四棱锥形状即为父模块。
进一步地,所述步骤1包括如下具体步骤:
步骤1-1,缩放模型;
首先对输入模型进行缩放处理,默认将模型包围盒最小方向缩放为4,输入后可通过模型控制器手动调整比例,假设尺寸最小方向为z方向,最值顶点坐标为(xmin,ymin,zmin)和(xmax,ymax,zmax),确定缩放比例sca及各个方向缩放后的长度lenx,leny:
步骤1-2,模型划分;
为使模型划分结果更加灵活可调,设定四棱锥模块分布范围从包围盒最小值顶点坐标向下取整的位置开始,为使划分后的四棱锥模块能够包含整个模型范围,将四棱锥模块的分布范围l,w,d在包围盒x,z,y方向的长度向上取整的基础上分别放大:
将满足三维坐标值 的正向、反向四棱锥模块分别与输入模型做布尔运算相交检测,保留相交的四棱锥模块,其中,在四棱锥模块与输入模型相交情况下,相交部分体积与四棱锥体积之比rat小于0.1,则认为不相交,记当前模块为c,对应rat的定义为:
进一步地,所述步骤2计算四棱锥模块的树连接,目的是找到四棱锥模块集合内连接最多模块的树其中,由于反向四棱锥模块仅作为后期优化形状的参考,仅对正向模块做链连接路径搜索,方法首先选取首层的链起点,而后以基于八叉树的搜索算法,规定层间节点选取标准,计算层内不重复连接模块的最长链,连接所有层内链构成四棱锥模块最长链,对于未连接入链内的遗留模块,在其同层的链路径内的模块、相邻的上层或下层的链路径内的模块中搜索相邻模块并建立连接关系作为树节点,构成四棱锥模块树。
进一步地,所述步骤2包括如下具体步骤:
步骤2-1,层间节点选取;
对于首层起点的选取,其具体的位置选择对后续连接路径计算影响不大,因此,选择首层模块第一行内的首个模块作为层间起点;
对于层内终点的选取,一层四棱锥模块链的终点必须保证能够与下一层四棱锥模块相连接,由于相邻层次的模块间连接方式为低层次的模块顶部顶点与高层次的模块底面顶点相连接,那么低层次模块的顶点共与四个高层次的模块相连接,对于模块Ci,选取与下一层四棱锥模块中的任意一个相连接的模块,即可作为层内终点连接上下两层,此外,由于最后一层不存在下一层模块,对它的终点的选取没有任何要求;
对于层内起点选取,除首层之外,其他层次的四棱锥模块链起点都与上一层模块的层内终点相关,在与上一层终点相连的四个模块方位中,按顺时针的优先级顺序选择四棱锥模块作为层内模块链的起点;
步骤2-2,层内不重复最长链计算;
不重复最长链是链连接过程中每个模块仅会被连接一次的链,对四棱锥模块集合,分别对于每一层进行不重复最长链计算;
在层内不重复最长链的计算中,采用基于八叉节点的回溯搜索算法,设当前层数为第h层,该层的总模块数量为nh,模块集合记为从选定的起点模块C0开始,向相邻八个方向展开模块搜索,找到最长链路径最长链路径包含的模块数目为
假设当前模块Ci的层内坐标值为(xi,zi),回溯算法的终止条件为满足以下任一项:①xi或zi超出模块存储矩阵范围,即xi<0或xi<l,或者zi<0或zi>w;②当前模块Ci不在中;③模块Ci已连接到当前的链中;④当前链内模块的数量等于该层内总模块数nh,且终点模块符合层内终点选取原则;
步骤2-3,遗留模块连接方法;
具有n个四棱锥模块的集合内仍有未连接入不重复最长链的模块,将此类模块称为遗留模块,记遗留模块集合对于这些模块,尝试将他们与同层或上层的近邻模块建立连接关系,完成所有遗留模块的连接后,得到四棱锥模块树定义遗留模块存储表Mrem,记录遗留模块与其上层相邻模块的对应关系,Mrem内有n'个元素,第i'个元素记录了遗留模块的位置信息及与其有连接关系的模块的位置信息:
其中,i′∈[0,n′)。遗留模块最多有16个与之相连的模块,即近邻模块,在图中编码为[C1,C16],搜索的所有近邻模块,按C1~C16的顺序选择第一个已在路径内或遗留模块存储表Mrem内的模块作为连接对象,记入Mrem中,近邻模块的优先级顺序为先同层再高层后低层,而同层内优先选择相交于线的四个近邻模块,以提高杆状模块子链的长度;
经过遗留模块连接计算,可由四棱锥模块不重复最长链路径得到四棱锥模块树也就是由与遗留模块存储表Mrem共同描述的连接关系。进一步地,所述步骤3在获取到四棱锥模块树后,提出基于状态匹配的杆状模块链配置方法,分别基于不重复链连接路径遗留模块存储表Mrem,计算杆状模块的初步链连接配置用杆状模块链存储矩阵Mline描述杆状模块链内的杆状模块连接次序,m为杆状模块链内的模块数目,由具有n个四棱锥模块的集合构成的三维形状,对应的存储矩阵Mline具有n个元素,其第i个行向量为描述了第i个四棱锥模块Ci内的杆状模块链的连接次序:
其中,i∈[0,n),mi为第i个四棱锥模块内杆状模块的个数,p∈[0,mi),为四棱锥模块内杆状模块链连接的顶点个数,pointcodep为杆状模块链依次连接的四棱锥顶点编码;
对于路径中的某一四棱锥模块,其杆状模块子链的配置方式与其两近邻模块的相对位置状态、底面四条棱边的方位被已配置的杆状模块子链的占据状态有关,对于不同的状态,模块内的杆状链模块均有其最优的链连接方式,罗列这些方式,并根据具体的状态进行匹配,得到四棱锥模块链内的杆状模块链 为杆状模块链内模块的数量;
对于存储表Mrem中的遗留四棱锥模块的配置,同样与底面四条棱边的空置状态相关,此外,需在路径内的模块进行杆状模块子链的配置后,调整表Mrem中该遗留模块对应连接对象的子链连接次序并将遗留模块子链***;
为便于进行杆状模块子链的配置和表示,对四棱锥模块进行棱和面的编码,设计顶点编码p0~p4,棱编码l0~l3。
进一步地,所述步骤3包括如下具体步骤:
步骤3-1,不重复四棱锥链路径内的杆状模块链层内配置方法;
首先,确定每个四棱锥父模块内,杆状模块子链的起点和终点,对路径内的模块Ci,两近邻模块Ci-1、Ci+1的位置决定了Ci内杆状模块子链的起点和终点,相对位置状态决定了杆状模块子链的配置方案,Sj为链内的第j个杆状模块,mi为四棱锥父模块Ci内的杆状模块数目,Ci-1、Ci+1的相对位置共分为相邻、相隔一个模块、相隔两个模块、相隔三个模块的情况,Ci内杆状模块子链的起点和终点分别对应处于重合或同侧、同侧、同侧或对角、对角四种的状态,对于有多个选择的情况,根据几种情况具体的杆状模块链连接方案,择优作为最终选择;
步骤3-2,不重复四棱锥链路径内的杆状模块链层间连接方法;
低层次四棱锥模块链的尾模块的最高顶点p4应当与高层次四棱锥模块链的首模块内的杆状模块链的起点相连,由于每一层的尾模块,他们的杆状模块链中最后一次经过最高顶点p4的次序始终为倒数第二或倒数第三,那么相应的删除掉其最后一个或两个节点,就可以直接与下一层模块的第一个杆状模块相连接;
步骤3-3,遗留模块的杆状模块链匹配方法;
完成不重复链路径的杆状模块链配置后,对遗留模块逐个配置杆状模块子链并连入链内杆状模块链中,在此过程中,设定遗留模块的起点与终点始终重合,根据四棱锥模块底面棱的空置状态,做具体的遗留模块内的杆状模块子链匹配,然后,将遗留模块内的路径***链条内相交节点位置;
遗留模块跟其在表Mrem内有连接关系的四棱锥模块内部的杆状模块链路径必然有交点,对于与连接对象四棱锥模块的杆状模块子链有交点的遗留模块选取交点作为的杆状模块子链的***点,路径匹配方案遵循杆状模块链起点和终点重合的情况。
进一步地,所述步骤4包括如下具体步骤:
仅有正向模块链的路径对轮廓的描述能力有限,因此提出根据反向模块来优化杆状模块链轮廓的方法;
反向模块对轮廓优化的作用方式可以分为三类:
仅补充侧面轮廓:这种情况存在于,反向模块存在同水平坐标的高层次正向模块,且其同层次正向相邻模块数量为1个或者彼此相交于线的2个;
仅补充顶面正方形轮廓:这种情况存在于,反向模块不存在同水平坐标的高层次正向模块,且其同层次正向相邻模块的数量为3个或4个;
同时补充侧面及顶面轮廓:它实际上是对于模型的四棱锥模块构形的形状特征的完善。这种情况存在于,反向模块存在同水平坐标的高层次模块,且其同层次正向相邻模块的数量为0个。
进一步地,所述步骤4三类反向模块对轮廓优化的作用方式,他们各自的实现方法如下:
(1)将补充轮廓连入同水平坐标的高层次正向模块或同层次正向相邻模块的杆状模块链内,连入同水平坐标的高层次正向模块的条件是,高层次正向模块的正方形底面上存在一个杆状模块,其两端分别与反向模块的两侧棱相交,且两侧棱的位置处无其他模块的杆状模块占据,其基本方法是将高层次正向模块的正方形底面上的杆状模块之一,替换为反向模块的两条侧棱,连入同层次正向相邻模块的杆状模块子链的条件是,高层次正向模块的正方形底面上存在一个未配置杆状模块的棱位置,其两端节点分别与反向模块的两侧棱相连,且两侧棱的位置处无其他模块的杆状模块占据,基本方法是在反向模块的两条侧棱,以及高层次正向模块的正方形底面上未配置杆状模块的棱,这三处配置相连的杆状模块链,并在正向相邻模块的与反向模块连接的节点处***;
(2)对于仅补充顶面正方形轮廓,由于没有足够的空间来进行反向模块的侧棱上的杆状模块配置,因此只需关注于正方形棱上的杆状模块连接配置,将所有此类反向模块按区域划分,以某一反向模块的一个相邻模块最高顶点作为补充路径的***点,将反向模块区域的整体外轮廓进行杆状模块链配置;
(3)对于同时补充侧面及顶面的轮廓,由于反向模块的相邻模块为0个,四个侧棱位置都无其他杆状模块占据,因此,将四条侧棱连入同水平坐标的高层次正向模块的杆状模块子链路径内。
本发明的一种基于晶格链的三维模型构建及变形方法具有以下优点:本发明可以将任意三维模型构建成以晶格链为基本结构的三维可变形模型,从而实现多形状间的相互变换。发明提出的算法可以应用在建筑结构、艺术造型设计等领域。
附图说明
图1为本发明的三维模型构建及变形方法的流程图;
图2为本发明的模型划分示意图;
图3(a)为本发明的同层四棱锥模块位置关系示意图;
图3(b)为本发明的邻层四棱锥模块位置关系示意图;
图3(c)为本发明的反向四棱锥模块位置关系示意图;
图4为本发明的层内终点及起点选取依据;
图5为本发明的层内不重复最长链计算示意图;
图6为本发明的近邻模块示意图;
图7(a)为本发明的遗留模块同层连接方法示意图;
图7(b)为本发明的连接遗留模块得到四棱锥模块树示意图;
图8为本发明的四棱锥父模块的顶点与棱编码示意图;
图9为本发明的相邻两模块相对位置状态对应的模块内杆状模块链起点、终点选择方案示意图;
图10为本发明的四棱锥父模块内杆状模块链匹配方案示意图;
图11为本发明的不重复四棱锥链路径的杆状模块链配置;
图12为本发明的遗留模块与连接对象的杆状模块子链连接方式;
图13为本发明的反向模块对轮廓优化的实现方法;
图14为本发明的杆状模块链构形轮廓优化。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于晶格链的三维模型构建及变形方法做进一步详细的描述。
由于晶格链的模块间仅有连接点的重合约束,模块间可自由转动,构形灵活度大。当模块数目较多时,构形相对复杂、解空间较大。因此,提出基于贪心思想的晶格链三维构形问题解法,定义父模块为由晶格链的基本模块——杆状模块组成的、能够形成规则排列的最小单位,选定杆状模块的父模块——四棱锥模块,首先求解四棱锥父模块的连接树,再以每个父模块为单位,求解杆状模块子链——单个父模块内的局部杆状模块链,并将所有子链首尾连接构成模型的杆状模块链构形。
如图1,本发明的一种基于晶格链的三维模型构建及变形方法包括如下步骤:
步骤1,对输入模型进行划分,将模型转换为四棱锥模块的集合,具体为:
为了获取模型的杆状模块链构形,先将其转换为由多个四棱锥模块组成的集合,每个四棱锥模块的每一条棱都作为后续放置杆状子模块的参考。输入模型被分割为多个棱长均为单位长度1的四棱锥,这个过程被称为模型划分,得到的四棱锥形状即为父模块。以猫模型的划分过程为例,具体步骤如下:
步骤1-1,缩放模型。
首先对输入模型进行缩放处理。默认将模型包围盒最小方向缩放为4,输入后可通过模型控制器手动调整比例。如图2,猫模型包围盒的最小方向为z方向,最值顶点坐标为(xmin,ymin,zmin)和(xmax,ymax,zmax),确定缩放比例sca及各个方向缩放后的长度lenx,leny:
步骤1-2,模型划分。
为使模型划分结果更加灵活可调,设定四棱锥模块分布范围从包围盒最小值顶点坐标向下取整的位置开始。相邻四棱锥模块间的位置关系如图3(a)-3(c)所示。为使划分后的四棱锥模块能够包含整个模型范围,将四棱锥模块的分布范围l,w,d在包围盒x,z,y方向的长度向上取整的基础上分别放大:
将满足三维坐标值 的正向、反向四棱锥模块分别与输入模型做布尔运算相交检测,保留相交的四棱锥模块。其中,在四棱锥模块与输入模型相交情况下,相交部分体积与四棱锥体积之比rat小于0.1,则认为不相交。记当前模块为c,对应rat的定义为:
步骤2,将四棱锥模块集合连接成树结构,先采用基于层次的方法计算连接尽可能多的四棱锥模块的最长链,再连接遗留的模块作为树节点,具体为:
计算四棱锥模块的树连接,目的是找到四棱锥模块集合内连接最多模块的树其中,由于反向四棱锥模块仅作为后期优化形状的参考,仅对正向模块做链连接路径搜索。方法首先选取首层的链起点,而后以基于八叉树的搜索算法,规定层间节点选取标准,计算层内不重复连接模块的最长链。连接所有层内链构成四棱锥模块最长链。对于未连接入链内的遗留模块,在其同层的链路径内的模块、相邻的上层或下层的链路径内的模块中搜索相邻模块并建立连接关系作为树节点,构成四棱锥模块树。具体步骤包括:
步骤2-1,层间节点选取。
对于首层起点的选取,其具体的位置选择对后续连接路径计算影响不大。因此,选择首层模块第一行内的首个模块作为层间起点。
对于层内终点的选取,一层四棱锥模块链的终点必须保证能够与下一层四棱锥模块相连接。由于相邻层次的模块间连接方式为低层次的模块顶部顶点与高层次的模块底面顶点相连接,那么低层次模块的顶点共与四个高层次(即其下一层)的模块相连接。对于模块Ci,四个模块方位如图4中C1,C2,C3,C4所示。那么,选取与下一层四棱锥模块中的任意一个相连接的模块,即可作为层内终点连接上下两层。此外,由于最后一层不存在下一层模块,对它的终点的选取没有任何要求。
对于层内起点选取,除首层之外,其他层次的四棱锥模块链起点都与上一层模块的层内终点相关。在与上一层终点相连的四个模块方位中,按C1,C2,C3,C4的优先级顺序选择四棱锥模块作为层内模块链的起点。
步骤2-2,层内不重复最长链计算。
不重复最长链是链连接过程中每个模块仅会被连接一次的链。对四棱锥模块集合,分别对于每一层进行不重复最长链计算。
在层内不重复最长链的计算中,采用基于八叉节点的回溯搜索算法。如图5中的(a)所示,设当前层数为第h层,该层的总模块数量为nh,模块集合记为从选定的起点模块C0开始,向相邻八个方向展开模块搜索,找到最长链路径(图5中的(b))。最长链路径包含的模块数目为
假设当前模块Ci的层内坐标值为(xi,zi),回溯算法的终止条件为满足以下任一项:①xi或zi超出模块存储矩阵范围,即xi<0或xi<l,或者zi<0或zi>w。②当前模块Ci不在中。③模块Ci已连接到当前的链中。④当前链内模块的数量等于该层内总模块数nh,且终点模块符合层内终点选取原则。
步骤2-3,遗留模块连接方法。
如图7(a)-7(b)所示,具有n个四棱锥模块的集合内仍有未连接入不重复最长链的模块,即图中红色框线模块将此类模块称为遗留模块。记遗留模块集合对于这些模块,尝试将他们与同层或上层的近邻模块建立连接关系。完成所有遗留模块的连接后,得到四棱锥模块树
如图6所示,遗留模块最多有16个与之相连的模块,即近邻模块,在图中编码为[C1,C16]。搜索的所有近邻模块,按C1~C16的顺序选择第一个已在路径内或遗留模块存储表Mrem内的模块作为连接对象,记入Mrem中。近邻模块的优先级顺序为先同层再高层后低层,而同层内优先选择相交于线的四个近邻模块,以提高杆状模块子链的长度。
如图7(a)-7(b),对于猫模型第0层遗留模块经八叉节点搜索,与模块C3建立连接关系。经过遗留模块连接计算,可由四棱锥模块不重复最长链路径得到四棱锥模块树也就是由与遗留模块存储表Mrem共同描述的连接关系。
步骤3,对四棱锥模块树内的每个四棱锥模块进行杆状模块链配置,采用基于状态匹配的方法,构建杆状模块子链并连接构成初步晶格链构形,具体为:
在获取到四棱锥模块树后,提出基于状态匹配的杆状模块链配置方法,分别基于不重复链连接路径遗留模块存储表Mrem,计算杆状模块的初步链连接配置用杆状模块链存储矩阵Mline描述杆状模块链内的杆状模块连接次序。m为杆状模块链内的模块数目。由具有n个四棱锥模块的集合构成的三维形状,对应的存储矩阵Mline具有n个元素。其第i个行向量为描述了第i个四棱锥模块Ci内的杆状模块链的连接次序:
其中,i∈[0,n)。mi为第i个四棱锥模块内杆状模块的个数。p∈[0,mi),为四棱锥模块内杆状模块链连接的顶点个数。pointcodep为杆状模块链依次连接的四棱锥顶点编码。
对于路径中的某一四棱锥模块,其杆状模块子链的配置方式与其两近邻模块的相对位置状态、底面四条棱边的方位被已配置的杆状模块子链的占据状态有关。对于不同的状态,模块内的杆状链模块均有其最优的链连接方式。罗列这些方式,并根据具体的状态进行匹配,得到四棱锥模块链内的杆状模块链 为杆状模块链内模块的数量。
对于存储表Mrem中的遗留四棱锥模块的配置,同样与底面四条棱边的空置状态相关。此外,需在路径内的模块进行杆状模块子链的配置后,调整表Mrem中该遗留模块对应连接对象的子链连接次序并将遗留模块子链***。
为便于进行杆状模块子链的配置和表示,对四棱锥模块进行棱和面的编码。如图8所示,设计顶点编码p0~p4,棱编码l0~l3。
步骤3-1,不重复四棱锥链路径内的杆状模块链层内配置方法。
首先,确定每个四棱锥父模块内,杆状模块子链的起点和终点。对路径内的模块Ci,两近邻模块Ci-1、Ci+1的位置决定了Ci内杆状模块子链的起点和终点,相对位置状态决定了杆状模块子链的配置方案。Sj为链内的第j个杆状模块,mi为四棱锥父模块Ci内的杆状模块数目。Ci-1、Ci+1的相对位置共分为相邻、相隔一个模块、相隔两个模块、相隔三个模块的情况。如图9所示,Ci内杆状模块子链的起点和终点分别对应处于重合或同侧(图9中的(a))、同侧(图9中的(b))、同侧或对角(图9中的(c))、对角(图9中的(d))四种的状态。对于有多个选择的情况,根据几种情况具体的杆状模块链连接方案,择优作为最终选择。
确定杆状模块链的起点和终点后,根据四棱锥模块内棱的空置状态,匹配父模块内的杆状模块链路径。以起点或终点的编码为p0的情况为例,匹配原则如下:
(1)对于起点和终点重合的情况,杆状模块的可行连接路径共有4种选择,如图10中的(a)所示(a1)对应编码值为l0,l2的棱可用的情况。(a2)对应编码值为l1,l3的棱可用的情况。(a3)对应编码值为l3的棱可用的情况。(a4)对应编码值为l0的棱可用的情况。
(2)对于起点和终点处于对角的情况,晶格链杆状模块的可行连接路径共有3种选择,如图10中的(b)所示。(b1)对应编码值为l0,l3的棱可用的情况。(b2)对应编码值为l1,l2的棱可用的情况。(b3)对应不存在棱可用的情况。
(3)对于起点和终点处于同侧的情况,晶格链杆状模块的可行连接路径共有5种选择,如图10中的(c)所示。(c1)对应编码值为l0,l1,l3的棱可用的情况。(c2)对应编码值为l2的棱可用的情况。(c3)对应编码值为l1的棱可用的情况。(c4)对应编码值为l2的棱可用的情况。0(c5)对应不存在棱可用的情况。
根据杆状模块链配置的匹配方案,对于四棱锥模块的起点和终点分别对应处于重合或同侧、同侧或对角这两种情况,选择杆状模块数量最多的连接方案,即经过的顶点最多的方案,从而最终确定四棱锥模块内的链的起点和终点的选择。以猫模型为例,第0层的不重复四棱锥链路径的杆状模块链配置的路径简图及模型图如图11所示。
步骤3-2,不重复四棱锥链路径内的杆状模块链层间连接方法。
如图4所示,低层次四棱锥模块链的尾模块的最高顶点p4应当与高层次四棱锥模块链的首模块内的杆状模块链的起点相连。由于每一层的尾模块,他们的杆状模块链中最后一次经过最高顶点p4的次序始终为倒数第二或倒数第三,那么相应的删除掉其最后一个或两个节点,就可以直接与下一层模块的第一个杆状模块相连接。
如图11所示,要使猫模型第0层杆状模块链与第1层的杆状模块相连,则需将图10中的(a)中所示红色杆状模块删除。第0层杆状模块链简图改变如图11中的(a)所示。不重复四棱锥链路径的杆状模块层间连接如图11中的(b)所示。
步骤3-3,遗留模块的杆状模块链匹配方法。
完成不重复链路径的杆状模块链配置后,对遗留模块逐个配置杆状模块子链并连入链内杆状模块链中。在此过程中,为简化计算,设定遗留模块的起点与终点始终重合。根据四棱锥模块底面棱的空置状态,做具体的遗留模块内的杆状模块子链匹配。然后,将遗留模块内的路径***链条内相交节点位置。
遗留模块跟其在表Mrem内有连接关系的四棱锥模块内部的杆状模块链路径必然有交点。对于与连接对象四棱锥模块的杆状模块子链有交点的遗留模块选取交点作为的杆状模块子链的***点,路径匹配方案遵循图10中的(a1)-(a4)中杆状模块链起点和终点重合的情况。如图12中的(b)所示,遗留模块与其连接对象C3的杆状模块链的交点位于编码为p0的点处。按遗留模块的杆状模块子链起点和终点重合的情况的匹配原则,其杆状模块链存储矩阵中对应的向量为:
而连接对象C3的杆状模块链存储矩阵向量为:
步骤4,对初步晶格链构形进行轮廓优化,设计轮廓补充的匹配规则,根据反向四棱锥模块构建补充杆状模块链,并连入初步晶格链构形中构成最终晶格链构形,具体为:
由猫模型的四棱锥模块构形(图12中的(b))及初步构形(图12中的(c))可见,仅有正向模块链的路径对轮廓的描述能力有限。因此提出根据反向模块来优化杆状模块链轮廓的方法。
反向模块对轮廓优化的作用方式可以分为三类:
仅补充侧面轮廓。这种情况存在于,反向模块存在同水平坐标的高层次正向模块,且其同层次正向相邻模块数量为1个或者彼此相交于线的2个。如图13中的(a)、(c)所示。
仅补充顶面正方形轮廓。这种情况存在于,反向模块不存在同水平坐标的高层次正向模块,且其同层次正向相邻模块的数量为3个或4个。如图13中的(e)所示。
同时补充侧面及顶面轮廓。它实际上是对于模型的四棱锥模块构形的形状特征的完善。这种情况存在于,反向模块存在同水平坐标的高层次模块,且其同层次正向相邻模块的数量为0个。如图13中的(g)所示。
针对以上三种优化类别,他们各自的实现方法如下:
(1)将补充轮廓连入同水平坐标的高层次正向模块或同层次正向相邻模块的杆状模块链内。如图13中的(a)所示,连入同水平坐标的高层次正向模块的条件是,高层次正向模块的正方形底面上存在一个杆状模块,其两端分别与反向模块的两侧棱相交,且两侧棱的位置处无其他模块的杆状模块占据。其基本方法是将高层次正向模块的正方形底面上的杆状模块之一,替换为反向模块的两条侧棱,如图13中的(b)所示。如图13中的(c)所示,连入同层次正向相邻模块的杆状模块子链的条件是,高层次正向模块的正方形底面上存在一个未配置杆状模块的棱位置,其两端节点分别与反向模块的两侧棱相连,且两侧棱的位置处无其他模块的杆状模块占据。基本方法是在反向模块的两条侧棱,以及高层次正向模块的正方形底面上未配置杆状模块的棱,这三处配置相连的杆状模块链,并在正向相邻模块的与反向模块连接的节点处***,如图13中的(d)。
(2)对于仅补充顶面正方形轮廓,由于没有足够的空间来进行反向模块的侧棱上的杆状模块配置,因此只需关注于正方形棱上的杆状模块连接配置。将所有此类反向模块按区域划分,以某一反向模块的一个相邻模块最高顶点作为补充路径的***点,将反向模块区域的整体外轮廓进行杆状模块链配置,如图13中的(f)所示。
(3)对于同时补充侧面及顶面的轮廓,由于反向模块的相邻模块为0个,四个侧棱位置都无其他杆状模块占据。因此,采用方法(1)中对应的方法,将四条侧棱连入同水平坐标的高层次正向模块的杆状模块子链路径内。如图13中的(h)所示,首先选取同水平坐标的高层次正向模块的正方形底面四条棱中有杆状模块的棱边,其对边若有杆状模块,则分别对两条棱位置的杆状模块执行图13中的(b)中的方案;对面若无杆状模块,则按如图13中的(h)中的连接方式,以新路径取代第一条杆状模块的棱。
经过轮廓优化后,猫模型的杆状模块链构形变化如图14所示。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (9)
1.一种基于晶格链的三维模型构建及变形方法,其特征在于,包括如下步骤:
步骤1:对输入模型进行划分,将模型转换为四棱锥模块的集合;
步骤2:将四棱锥模块集合连接成树结构,先采用基于层次的方法计算连接尽可能多的四棱锥模块的最长链,再连接遗留的模块作为树节点;
步骤3:对四棱锥模块树内的每个四棱锥模块进行杆状模块链配置,采用基于状态匹配的方法,构建杆状模块子链并连接构成初步晶格链构形;
步骤4:对初步晶格链构形进行轮廓优化,设计轮廓补充的匹配规则,根据反向四棱锥模块构建补充杆状模块链,并连入初步晶格链构形中构成最终晶格链构形。
2.根据权利要求1所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤1为了获取模型的杆状模块链构形,先将其转换为由多个四棱锥模块组成的集合,每个四棱锥模块的每一条棱都作为后续放置杆状子模块的参考,输入模型被分割为多个棱长均为单位长度1的四棱锥,这个过程被称为模型划分,得到的四棱锥形状即为父模块。
3.根据权利要求1所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤1包括如下具体步骤:
步骤1-1,缩放模型;
首先对输入模型进行缩放处理,默认将模型包围盒最小方向缩放为4,输入后可通过模型控制器手动调整比例,假设尺寸最小方向为z方向,最值顶点坐标为(xmin,ymin,zmin)和(xmax,ymax,zmax),确定缩放比例sca及各个方向缩放后的长度lenx,leny:
步骤1-2,模型划分;
为使模型划分结果更加灵活可调,设定四棱锥模块分布范围从包围盒最小值顶点坐标向下取整的位置开始,为使划分后的四棱锥模块能够包含整个模型范围,将四棱锥模块的分布范围l,w,d在包围盒x,z,y方向的长度向上取整的基础上分别放大:
将满足三维坐标值 的正向、反向四棱锥模块分别与输入模型做布尔运算相交检测,保留相交的四棱锥模块,其中,在四棱锥模块与输入模型相交情况下,相交部分体积与四棱锥体积之比rat小于0.1,则认为不相交,记当前模块为c,对应rat的定义为:
5.根据权利要求1所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤2包括如下具体步骤:
步骤2-1,层间节点选取;
对于首层起点的选取,其具体的位置选择对后续连接路径计算影响不大,因此,选择首层模块第一行内的首个模块作为层间起点;
对于层内终点的选取,一层四棱锥模块链的终点必须保证能够与下一层四棱锥模块相连接,由于相邻层次的模块间连接方式为低层次的模块顶部顶点与高层次的模块底面顶点相连接,那么低层次模块的顶点共与四个高层次的模块相连接,对于模块Ci,选取与下一层四棱锥模块中的任意一个相连接的模块,即可作为层内终点连接上下两层,此外,由于最后一层不存在下一层模块,对它的终点的选取没有任何要求;
对于层内起点选取,除首层之外,其他层次的四棱锥模块链起点都与上一层模块的层内终点相关,在与上一层终点相连的四个模块方位中,按顺时针的优先级顺序选择四棱锥模块作为层内模块链的起点;
步骤2-2,层内不重复最长链计算;
不重复最长链是链连接过程中每个模块仅会被连接一次的链,对四棱锥模块集合,分别对于每一层进行不重复最长链计算;
在层内不重复最长链的计算中,采用基于八叉节点的回溯搜索算法,设当前层数为第h层,该层的总模块数量为nh,模块集合记为从选定的起点模块C0开始,向相邻八个方向展开模块搜索,找到最长链路径最长链路径包含的模块数目为
假设当前模块Ci的层内坐标值为(xi,zi),回溯算法的终止条件为满足以下任一项:①xi或zi超出模块存储矩阵范围,即xi<0或xi<l,或者zi<0或zi>w;②当前模块Ci不在中;③模块Ci已连接到当前的链中;④当前链内模块的数量等于该层内总模块数nh,且终点模块符合层内终点选取原则;
步骤2-3,遗留模块连接方法;
具有n个四棱锥模块的集合内仍有未连接入不重复最长链的模块,将此类模块称为遗留模块,记遗留模块集合对于这些模块,尝试将他们与同层或上层的近邻模块建立连接关系,完成所有遗留模块的连接后,得到四棱锥模块树定义遗留模块存储表Mrem,记录遗留模块与其上层相邻模块的对应关系,Mrem内有n'个元素,第i'个元素记录了遗留模块的位置信息及与其有连接关系的模块的位置信息:
遗留模块最多有16个与之相连的模块,即近邻模块,在图中编码为[C1,C16],搜索的所有近邻模块,按C1~C16的顺序选择第一个已在路径内或遗留模块存储表Mrem内的模块作为连接对象,记入Mrem中,近邻模块的优先级顺序为先同层再高层后低层,而同层内优先选择相交于线的四个近邻模块,以提高杆状模块子链的长度;
6.根据权利要求1所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤3在获取到四棱锥模块树后,提出基于状态匹配的杆状模块链配置方法,分别基于不重复链连接路径遗留模块存储表Mrem,计算杆状模块的初步链连接配置用杆状模块链存储矩阵Mline描述杆状模块链内的杆状模块连接次序,m为杆状模块链内的模块数目,由具有n个四棱锥模块的集合构成的三维形状,对应的存储矩阵Mline具有n个元素,其第i个行向量为描述了第i个四棱锥模块Ci内的杆状模块链的连接次序:
其中,i∈[0,n),mi为第i个四棱锥模块内杆状模块的个数,p∈[0,mi),为四棱锥模块内杆状模块链连接的顶点个数,pointcodep为杆状模块链依次连接的四棱锥顶点编码;
对于路径中的某一四棱锥模块,其杆状模块子链的配置方式与其两近邻模块的相对位置状态、底面四条棱边的方位被已配置的杆状模块子链的占据状态有关,对于不同的状态,模块内的杆状链模块均有其最优的链连接方式,罗列这些方式,并根据具体的状态进行匹配,得到四棱锥模块链内的杆状模块链 为杆状模块链内模块的数量;
对于存储表Mrem中的遗留四棱锥模块的配置,同样与底面四条棱边的空置状态相关,此外,需在路径内的模块进行杆状模块子链的配置后,调整表Mrem中该遗留模块对应连接对象的子链连接次序并将遗留模块子链***;
为便于进行杆状模块子链的配置和表示,对四棱锥模块进行棱和面的编码,设计顶点编码p0~p4,棱编码l0~l3。
7.根据权利要求1所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤3包括如下具体步骤:
步骤3-1,不重复四棱锥链路径内的杆状模块链层内配置方法;
首先,确定每个四棱锥父模块内,杆状模块子链的起点和终点,对路径内的模块Ci,两近邻模块Ci-1、Ci+1的位置决定了Ci内杆状模块子链的起点和终点,相对位置状态决定了杆状模块子链的配置方案,Sj为链内的第j个杆状模块,mi为四棱锥父模块Ci内的杆状模块数目,Ci-1、Ci+1的相对位置共分为相邻、相隔一个模块、相隔两个模块、相隔三个模块的情况,Ci内杆状模块子链的起点和终点分别对应处于重合或同侧、同侧、同侧或对角、对角四种的状态,对于有多个选择的情况,根据几种情况具体的杆状模块链连接方案,择优作为最终选择;
步骤3-2,不重复四棱锥链路径内的杆状模块链层间连接方法;
低层次四棱锥模块链的尾模块的最高顶点p4应当与高层次四棱锥模块链的首模块内的杆状模块链的起点相连,由于每一层的尾模块,他们的杆状模块链中最后一次经过最高顶点p4的次序始终为倒数第二或倒数第三,那么相应的删除掉其最后一个或两个节点,就可以直接与下一层模块的第一个杆状模块相连接;
步骤3-3,遗留模块的杆状模块链匹配方法;
完成不重复链路径的杆状模块链配置后,对遗留模块逐个配置杆状模块子链并连入链内杆状模块链中,在此过程中,设定遗留模块的起点与终点始终重合,根据四棱锥模块底面棱的空置状态,做具体的遗留模块内的杆状模块子链匹配,然后,将遗留模块内的路径***链条内相交节点位置;
8.根据权利要求1所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤4包括如下具体步骤:
仅有正向模块链的路径对轮廓的描述能力有限,因此提出根据反向模块来优化杆状模块链轮廓的方法;
反向模块对轮廓优化的作用方式可以分为三类:
仅补充侧面轮廓:这种情况存在于,反向模块存在同水平坐标的高层次正向模块,且其同层次正向相邻模块数量为1个或者彼此相交于线的2个;
仅补充顶面正方形轮廓:这种情况存在于,反向模块不存在同水平坐标的高层次正向模块,且其同层次正向相邻模块的数量为3个或4个;
同时补充侧面及顶面轮廓:它实际上是对于模型的四棱锥模块构形的形状特征的完善。
这种情况存在于,反向模块存在同水平坐标的高层次模块,且其同层次正向相邻模块的数量为0个。
9.根据权利要求8所述的基于晶格链的三维模型构建及变形方法,其特征在于,所述步骤4三类反向模块对轮廓优化的作用方式,他们各自的实现方法如下:
(1)将补充轮廓连入同水平坐标的高层次正向模块或同层次正向相邻模块的杆状模块链内,连入同水平坐标的高层次正向模块的条件是,高层次正向模块的正方形底面上存在一个杆状模块,其两端分别与反向模块的两侧棱相交,且两侧棱的位置处无其他模块的杆状模块占据,其基本方法是将高层次正向模块的正方形底面上的杆状模块之一,替换为反向模块的两条侧棱,连入同层次正向相邻模块的杆状模块子链的条件是,高层次正向模块的正方形底面上存在一个未配置杆状模块的棱位置,其两端节点分别与反向模块的两侧棱相连,且两侧棱的位置处无其他模块的杆状模块占据,基本方法是在反向模块的两条侧棱,以及高层次正向模块的正方形底面上未配置杆状模块的棱,这三处配置相连的杆状模块链,并在正向相邻模块的与反向模块连接的节点处***;
(2)对于仅补充顶面正方形轮廓,由于没有足够的空间来进行反向模块的侧棱上的杆状模块配置,因此只需关注于正方形棱上的杆状模块连接配置,将所有此类反向模块按区域划分,以某一反向模块的一个相邻模块最高顶点作为补充路径的***点,将反向模块区域的整体外轮廓进行杆状模块链配置;
(3)对于同时补充侧面及顶面的轮廓,由于反向模块的相邻模块为0个,四个侧棱位置都无其他杆状模块占据,因此,将四条侧棱连入同水平坐标的高层次正向模块的杆状模块子链路径内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210871928.1A CN115359177A (zh) | 2022-07-19 | 2022-07-19 | 一种基于晶格链的三维模型构建及变形方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210871928.1A CN115359177A (zh) | 2022-07-19 | 2022-07-19 | 一种基于晶格链的三维模型构建及变形方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115359177A true CN115359177A (zh) | 2022-11-18 |
Family
ID=84031346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210871928.1A Pending CN115359177A (zh) | 2022-07-19 | 2022-07-19 | 一种基于晶格链的三维模型构建及变形方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115359177A (zh) |
-
2022
- 2022-07-19 CN CN202210871928.1A patent/CN115359177A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100233972B1 (ko) | 기하학적 모델을 압축 및 압축해제하는 컴퓨터 시스템과 압축 및압축해제 | |
Anderson et al. | Operations on rigid formations of autonomous agents | |
US6910001B2 (en) | Distributed multiresolution geometry modeling system and method | |
US20230182396A1 (en) | Method of Additively Manufacturing a Minimal Surface Structure | |
CN111243094B (zh) | 一种基于点灯法的三维模型精确体素化方法 | |
CN112149336B (zh) | 三维集成电路电磁仿真高质量网格快速生成方法及装置 | |
CN115481497A (zh) | 一种基于特征框架的体参数化建模方法 | |
Aloupis et al. | Efficient constant-velocity reconfiguration of crystalline robots | |
CN110533764B (zh) | 面向建筑群的分形四叉树纹理组织方法 | |
CN114241087B (zh) | 一种基于气泡图的建筑平面布局生成方法 | |
CN117852481B (zh) | 一种集成电路版图网表信息的快速确定方法及*** | |
CN115359177A (zh) | 一种基于晶格链的三维模型构建及变形方法 | |
Hambrusch | VLSI algorithms for the connected component problem | |
Kropatsch | Curve representations in multiple resolutions | |
CN109615136B (zh) | 一种基于粒子填充原理的集装箱装载过程优化方法 | |
CN109741421B (zh) | 一种基于gpu的动态图着色方法 | |
KR100340080B1 (ko) | 정렬되지 않은 3차원 거리 데이터로부터 캐드모델 생성 방법 | |
CN106097446A (zh) | 一种基于大规模地震数据的三维地质曲面重建方法 | |
CN115359176A (zh) | 一种基于方形模块链的三维模型构建及变形方法 | |
JP3286213B2 (ja) | 幾何モデルを圧縮し圧縮解除する方法及びシステム | |
CN115906748A (zh) | 一种基于滑动窗口和离散差分进化算法的3d布局优化方法 | |
Ghrist | Shape Complexes for Metamorhpic Robots | |
Séquin | 3D Gosper Sculptures | |
Shekhawat | A theory of L-shaped floor-plans | |
Radtke et al. | Flip graph connectivity for arrangements of pseudolines and pseudocircles |
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 |