一种石英砂气液包裹体三维力学分析系统的制作方法

文档序号:15492814发布日期:2018-09-21 20:58阅读:267来源:国知局

本发明属于材料技术领域,尤其涉及一种石英砂气液包裹体三维力学分析系统。



背景技术:

目前,业内常用的现有技术是这样的:

石英砂是石英石经破碎加工而成的石英颗粒。石英石是一种非金属矿物质,是一种坚硬、耐磨、化学性能稳定的硅酸盐矿物。石英砂的颜色为乳白色、或无色半透明状,莫氏硬度7。石英砂是重要的工业矿物原料,非化学危险品,广泛用于玻璃、铸造、陶瓷及防火材料、冶炼硅铁、冶金熔剂、冶金、建筑、化工、塑料、橡胶、磨料,滤料等工业。然而,现有对石英砂气液包裹体体积、性能测量精度不高,影响分析数据结果;同时通过平面图像分析,不能全方位、立体的展示分析。

随着三维扫描硬件的快速发展和三维建模水平的提高,三维模型的精细度越来越高,与此同时,模型的数据量也变得十分庞大。这样一方面难以满足模型实时传输和处理的需要,另一方面也对场景渲染效率造成了较大的影响,因此在这些应用中必须对模型进行化简。

在我们生活的各个领域,对于不规则曲面上进行纹理映射的需求也越来越多。比如,在工业造型中常用自由曲面来进行飞机、轮船、汽车的外形设计,在激光打标机中需要对不规则的型腔表面上进行激光打标,在三维游戏中通常要对虚拟的场景进行现实模拟,在智能装潢中要对壁纸或家具效果进行提前模拟、预览等。因此纹理映射技术在工业设计、3d游戏场景设计、影视动画制作以及虚拟仿真等领域有着非常广泛的应用。不规则曲面的纹理映射的研究具有一定的实际应用价值。

三角网格曲面的纹理映射是指将二维纹理图像映射到三维三角网格表示的曲面上,即找到二维纹理平面与三角网格曲面的一个一一映射的关系。通过这种关系,将二维纹理平面贴合到三维不规则曲面上,使其更具真实感。

现如今,随着几何获取设备(如:深度相机、三维扫描仪等)的发展,三角网格已成为表示物体表面的一种主流方法。对于既定的曲面,三角网格数量越多,表示的曲面就越光滑。而对数量繁多的三角网格表示的曲面直接做纹理映射时,需求出每个三角网格顶点的纹理坐标,这样会降低方法的时间性能。

综上所述,现有技术存在的问题是:

现有对石英砂气液包裹体体积、性能测量精度不高,影响分析数据结果;同时通过平面图像分析,不能全方位、立体的展示分析。

现有用三角网格表示的曲面直接做纹理映射方法,需要求出出每个三角网格顶点的纹理坐标,使得时间性能低,影响了分析的实用性。

现有技术对体积的预测预测,准确性差,不能够适应不同状态引起的各种变化。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种石英砂气液包裹体三维力学分析系统。

本发明是这样实现的,一种石英砂气液包裹体三维力学分析系统,包括:

体积测量模块,与主控模块连接,用于测量气液包裹体的体积数据;体积测量模块的测量方法包括:

将体积测量模块内嵌的关系型数据库数据、传感器数据和控制器数据通过sqoop上传至分布式文件系统hdfs,并存储至nosql数据库中;利用mapreduce计算框架对关系型数据库数据、传感器数据和控制器数据进行挖掘分析,将分析好的数据写入nosql数据库,并通过web展示;

在mapreduce框架下运用apriori关联规则挖掘,具体包括:

使用mapreduce计算模型得到频繁1项集的集合l1,产生候选k项集的集合ck(k≥2);

在map函数处理阶段,每个map任务计算其所处理的事务数据集中每个事务记录中包含在ck中的项目集的出现次数,对于每个map任务来说,如果候选k项集的某个项集(包含k个项目)出现在一个事务记录中,则map函数产生并输出<某个项集,1>键值对给combiner函数,由combiner函数处理后交给reduce函数;

在reduce函数处理阶段,reduce函数累加ck中的项目集的出现次数,得到所有项目集的支持频度,所有支持频度≥设定的最小支持频度的项目集组成频繁项集lk的集合,如果k<最大的迭代次数且不为空,则执行k++,转入步骤map函数处理阶段;否则,结束运行;

主控模块,与压力检测模块、温度检测模块、体积测量模块、坐标曲线绘制模块、三维模拟模块、数据存储模块、显示模块连接,用于调度各个模块正常工作;

坐标曲线绘制模块,与主控模块连接,用于将检测的数据通过数学软件绘制成坐标曲线;

三维模拟模块,与主控模块连接,用于将气液包裹体制作成三维模型进行动态分析;具体包括:

步骤一、对三角网络模型进行简化,从而得到简化三角网络模型;

步骤二、利用步骤一所得到的简化三角网络模型,建立弹簧-质点模型,得到简化三角网格通过弹簧-质点模型参数化于矩形域后的最终位置;

步骤三、利用得到简化三角网络模型的过程,计算被删除点在参数化矩形域中的初始位置,这样就得到初始模型中所有顶点在参数化矩形域中的位置;

步骤四、对参数化初始模型建立弹簧-质点模型,固定其边界顶点不动,引发内点迭代,直至内点位置达到平衡,得到弹簧-质点模型修正的参数化坐标;

步骤五:对步骤四得到的弹簧-质点模型修正的参数化坐标进行归一化处理,即为网格顶点的纹理坐标,进行纹理贴图。

进一步,体积测量模块的测量方法还包括:

产生神经网络模型bp初始权值:将权值初始化为[a,b]之间的随机数,其中a,b为满足以下方程的整数:

其中h为网络隐含层节点数;

对神经网络模型bp的权值和阈值进行动态改进,获得动态神经网络模型dbp,产生动态神经网络模型dbp的权值和阈值;

运用自适应免疫遗传aiga算法优化动态神经网络模型dbp,获得预测模型aiga-dbp,根据预测模型aiga-dbp计算体积预测值;

对神经网络模型bp的权值和阈值进行动态改进,获得动态神经网络模型dbp,产生动态神经网络模型dbp的权值和阈值具体包括以下步骤:

调整神经网络模型bp隐含层与输出层之间的权值wkj;

调整wkj的目的是希望输出节点j的新输出o*pj比当前输出opj更接近目标值tpj,定义:

其中α代表接近度,在每个训练周期保持不变,并随隐含层节点数h的调整而变小,不考虑阈值,则有:

其中wkj和w*kj分别为更新前后的权值,ypk为隐含层输出,△wkj为wkj的改变量;

得到△wkj的求解方程:

其中,

根据最小平方和误差原则求解方程得到△wkj的近似解:

对每一个连接到输出节点j的隐含层节点k,计算k与j之间的权值变化△wkj,更新权值并计算平方和误差e,然后在k∈[1,h]区间选择一个最优的k,使得e最小;

调整神经网络模型bp输入层与隐含层之间的权值vik;

调整vik的目的是一旦神经网络算法陷入局部极小点,修改权值能够跳出该极小点,判断神经网络算法陷入局部极小点的条件是误差e的变化率△e=0,且e>0;

不考虑阈值,隐含层节点k的权值的改变通过以下方程求解:

其中δpj=f-1(ypk+δypk)-f-1(ypk),m为自然数,则隐含层输出ypk求解公式为:

其中△ypk为ypk的改变量,则有:

根据最小平方和误差原则求解公式构建的矩阵方程,可以算出:

综合公式计算隐含层与输出层之间权值的动态平均改变量

计算输入层与隐含层之间权值的动态平均改变量

m取10~20之间的自然数,获得神经网络模型bp的动态平均权值,根据神经网络模型bp的动态平均权值获得动态神经网络模型dbp。

运用自适应免疫遗传aiga算法优化动态神经网络模型dbp的权植和阈值,获得预测模型aiga-dbp具体包括以下步骤:

首先进行抗原识别,即均方误差的识别,产生初始的抗体(动态神经网络模型dbp的权值和阈值)后,进行抗体编码,然后计算抗体适应度和抗体浓度,根据计算的结果进行基于浓度的自适应抗体选择操作,若此操作满足条件,则获得合适的权值和阈值,并将结果输出;若此操作不满足条件,需要进行自适应交叉操作和自适应变异操作,并进行权值和阈值的更新,再重新计算抗体适应度和抗体浓度,直到获得满足条件的权值和阈值,最后根据满足条件的权值和阈值,获得预测模型aiga-dbp。

进一步,所述步骤一、对三角网络模型进行简化,从而得到简化三角网络模型,包括如下步骤:

(1)进行三角网格模型初始化,遍历三角网格中的每条有向边,若此边仅被一个三角形包含,则说明连接此边的两个顶点均为边界点;

(2)输入需要保留的顶点个数x,以及夹角阈值θ;

(3)判断现有顶点个数是否大于顶点阈值x;若是,则进行(4);若否,则进行(9);

(4)分别求出每一条边的边长,以及每个三角形的法向量,利用以下公式计算有向边的折叠代价cost(eij);并找出折叠代价最小的有向边euv,然后进行进行(5);

cost(eij)=‖eij‖·w(eij)(2)

其中w(eij)表示有向边eij的局部曲率,ti表示包含顶点vi的三角形集合,teij表示包含边eij的三角形集合,f.normal是指f面的法向量,n.normal是指n面上的法向量;它表示了包含有向边eij的三角面片与包含顶点vi的三角面片的法向最大值;

(5)判断u、v是否均为边界点。若是,则进行(6);若否,则进行(7);

(6)判断边界点u处的边界角是否大于阈值θ;若是,则进行(8);若否,则进行(3);

(7)判断u、v是否满足u是边界点,v不是边界点;若满足,则进行(3);若不满足,则进行(8);

(8)删除顶点u,将与顶点u连接的边关系连接至顶点v。并标记u、v两点均为受影响点,进行(3);

(9)结束;

所述步骤二、利用步骤一所得到的简化三角网络模型,建立弹簧-质点模型,得到简化三角网格通过弹簧-质点模型参数化于矩形域后的最终位置,包括如下步骤:

(a)读入三角网格模型,初始化质点质量m,弹簧劲度系数k,时间步长δt,迭代域值e;

(b)进行三角网格数据预处理,得到三角网格模型边界点序列,以有各顶点的邻接点序列;

(c)根据式(3)、(4)选择投影面,将三角网格模型进行投影,在投影面建立二维坐标系,计算三角网格顶点投影后的二维坐标(xi,yi);

a(x-x0)+b(y-y0)+c(z-z0)=0(3)

其中,(a,b,c)是投影面的法向量,x0,y0,z0是空间内一定点,(ai,bi,ci)是第i个三角形的法向量,n是不规则曲面片上三角形的个数;

(d)选取参数化矩形区域的四个顶点,根据投影后的三角网格的结构特征,选取四个边界点,固定于给定矩形域的顶点;

(e)由于点的移动,引发非固定点的受力情况发生改变;根据式(5),计算非固定点所受合力f(pi);若对于任意点pi,所受合力均小于给定阈值,即f(pi)≤e,则终止本次迭代,第一次终止迭代时转(i),第二次终止迭代时转(j);否则,继续;

其中,m为弹簧-质点模型系统的质量矩阵,q为质点坐标,k为刚度矩阵;

(f)根据式(6),由合力f(pi)计算每个点的加速度

其中,m是质点质量,为在t时刻质点pi的加速度;

(g)由加速度以及给定的时间步长δt,根据式(7)、(8)计算每个点的位移;

其中,分别为在t和t+δt时刻时质点pi的速度,分别为在t和

t+δt时刻质点pi的位置;

(h)由(g)中的位移,计算每个点在经过δt时间后,点的当前位置转(e);

(i)将未固定的边界点按照空间网格中边界点与边界点间折线段的比例,固定至给定矩形域的四个边;再继续进行(i);

(j)得到参数化结果。

进一步,所述石英砂气液包裹体三维力学分析系统还包括:

压力检测模块,与主控模块连接,用于通过压力传感器检测气液包裹体的压力数据;

温度检测模块,与主控模块连接,用于通过温度传感器检测气液包裹体的温度数据;

数据存储模块,与主控模块连接,用于将分析数据进行存储;

显示模块,与主控模块连接,用于显示检测数据及三维模型。

进一步,所述体积测量模块测量方法如下:

首先,采用激光共聚焦显微镜进行扫描,获取石英砂气液包裹体三维立体图像;

其次,在透射光及荧光下利用三向坐标标定三维立体图像液相的边界;

接着,根据标定的液相边界,计算石英砂气液包裹体液相的体积;

然后,利用激光共聚焦显微荧光光谱精确获取石英砂气液包裹体中的气相直径d及气相半径r;

最后,根据公式v=(4/3)πr3计算包裹体中气相的体积v。

进一步,所述三维模拟模块包括模型制作模块、参数设置模块、演绎模块;

模型制作模块,用于将气液包裹体通过3d模型软件制作成三维模型;

参数设置模块,用于设置气液包裹体受力参数;

演绎模块,用于通过设置的参数动态演绎气液包裹体受力情况。

本发明的优点及积极效果为:

本发明通过体积测量模块精确测量石英砂气液包裹体体积,测量精度与以往的技术相比得到显著提高;同时通过三维模拟模块更加立体、全方位的观察石英砂气液包裹体及其受力情况,有利于准确的分析。

本发明不需要求出每个三角网络格顶点的纹理坐标,就能直接做纹理映射,可以很大程度上减少方法的时间复杂度,提高了时间性能,通过弹簧-质点模型的应用使参数化后的三角网格保持了原始三角网格的几何结构,弹簧-质点模型的应用能够保持三角网格原始几何特征地均匀分布,不会引发纹理会聚以及纹理较大变形现象,因此,纹理映射结果中的纹理变形较小。

本发明然后运用关联规则算法挖掘出总完工时间影响因素,并构建神经网络模型bp,对神经网络模型bp的权值和阈值进行动态改进,从而获得动态神经网络模型dbp,再运用自适应免疫遗传aiga算法优化动态神经网络模型dbp获得预测模型aiga-dbp,最后运用预测模型aiga-dbp计算出体积预测值,本发明中的动态神经网络模型dbp能够适应因不同状态引起的各种变化。

本发明中运用了大数据分析技术,使得体积测量影响因素的挖掘更为高效和准确,影响因素考虑更加全面,有效提高预测的准确性。

附图说明

图1是本发明实施例提供的石英砂气液包裹体三维力学分析系统结构框图。

图中:1、压力检测模块;2、温度检测模块;3、体积测量模块;4、主控模块;5、坐标曲线绘制模块;6、三维模拟模块;7、数据存储模块;8、显示模块。

图2是本发明实施例提供的边界边的简化示意图。

图3是本发明实施例提供的弹簧-质点模型示意图。

图4是本发明实施例提供的简化被删点的参数化初始位置确定示意图。

具体实施方式

为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下。

如图1所示,本发明实施例提供的石英砂气液包裹体三维力学分析系统包括:压力检测模块1、温度检测模块2、体积测量模块3、主控模块4、坐标曲线绘制模块5、三维模拟模块6、数据存储模块7、显示模块8。

压力检测模块1,与主控模块4连接,用于通过压力传感器检测气液包裹体的压力数据;

温度检测模块2,与主控模块4连接,用于通过温度传感器检测气液包裹体的温度数据;

体积测量模块3,与主控模块4连接,用于测量气液包裹体的体积数据;

主控模块4,与压力检测模块1、温度检测模块2、体积测量模块3、坐标曲线绘制模块5、三维模拟模块6、数据存储模块7、显示模块8连接,用于调度各个模块正常工作;

坐标曲线绘制模块5,与主控模块4连接,用于将检测的数据通过数学软件绘制成坐标曲线;

三维模拟模块6,与主控模块4连接,用于将气液包裹体制作成三维模型进行动态分析;

数据存储模块7,与主控模块4连接,用于将分析数据进行存储;

显示模块8,与主控模块4连接,用于显示检测数据及三维模型。

本发明提供的体积测量模块3测量方法如下:

首先,采用激光共聚焦显微镜进行扫描,获取石英砂气液包裹体三维立体图像;

其次,在透射光及荧光下利用三向坐标标定三维立体图像液相的边界;

接着,根据标定的液相边界,计算石英砂气液包裹体液相的体积;

然后,利用激光共聚焦显微荧光光谱精确获取石英砂气液包裹体中的气相直径d及气相半径r;

最后,根据公式v=(4/3)πr3计算包裹体中气相的体积v。

本发明提供的三维模拟模块6包括模型制作模块、参数设置模块、演绎模块;

模型制作模块,用于将气液包裹体通过3d模型软件制作成三维模型;

参数设置模块,用于设置气液包裹体受力参数;

演绎模块,用于通过设置的参数动态演绎气液包裹体受力情况。

本发明工作时,

通过压力检测模块1检测气液包裹体的压力数据;通过温度检测模块2检测气液包裹体的温度数据;通过体积测量模块3测量气液包裹体的体积数据;主控模块4调度坐标曲线绘制模块5绘制数学坐标曲线;通过三维模拟模块6将气液包裹体制作成三维模型进行动态分析;通过数据存储模块7将分析数据进行存储;通过显示模块8显示检测数据及三维模型。

本发明的体积测量模块的测量方法包括:

将体积测量模块内嵌的关系型数据库数据、传感器数据和控制器数据通过sqoop上传至分布式文件系统hdfs,并存储至nosql数据库中;利用mapreduce计算框架对关系型数据库数据、传感器数据和控制器数据进行挖掘分析,将分析好的数据写入nosql数据库,并通过web展示;

在mapreduce框架下运用apriori关联规则挖掘,具体包括:

使用mapreduce计算模型得到频繁1项集的集合l1,产生候选k项集的集合ck(k≥2);

在map函数处理阶段,每个map任务计算其所处理的事务数据集中每个事务记录中包含在ck中的项目集的出现次数,对于每个map任务来说,如果候选k项集的某个项集(包含k个项目)出现在一个事务记录中,则map函数产生并输出<某个项集,1>键值对给combiner函数,由combiner函数处理后交给reduce函数;

在reduce函数处理阶段,reduce函数累加ck中的项目集的出现次数,得到所有项目集的支持频度,所有支持频度≥设定的最小支持频度的项目集组成频繁项集lk的集合,如果k<最大的迭代次数且不为空,则执行k++,转入步骤map函数处理阶段;否则,结束运行;

主控模块,与压力检测模块、温度检测模块、体积测量模块、坐标曲线绘制模块、三维模拟模块、数据存储模块、显示模块连接,用于调度各个模块正常工作;

坐标曲线绘制模块,与主控模块连接,用于将检测的数据通过数学软件绘制成坐标曲线;

三维模拟模块,与主控模块连接,用于将气液包裹体制作成三维模型进行动态分析;具体包括:

步骤一、对三角网络模型进行简化,从而得到简化三角网络模型;

步骤二、利用步骤一所得到的简化三角网络模型,建立弹簧-质点模型,得到简化三角网格通过弹簧-质点模型参数化于矩形域后的最终位置;

步骤三、利用得到简化三角网络模型的过程,计算被删除点在参数化矩形域中的初始位置,这样就得到初始模型中所有顶点在参数化矩形域中的位置;

步骤四、对参数化初始模型建立弹簧-质点模型,固定其边界顶点不动,引发内点迭代,直至内点位置达到平衡,得到弹簧-质点模型修正的参数化坐标;

步骤五:对步骤四得到的弹簧-质点模型修正的参数化坐标进行归一化处理,即为网格顶点的纹理坐标,进行纹理贴图。

进一步,体积测量模块的测量方法还包括:

产生神经网络模型bp初始权值:将权值初始化为[a,b]之间的随机数,其中a,b为满足以下方程的整数:

其中h为网络隐含层节点数;

对神经网络模型bp的权值和阈值进行动态改进,获得动态神经网络模型dbp,产生动态神经网络模型dbp的权值和阈值;

运用自适应免疫遗传aiga算法优化动态神经网络模型dbp,获得预测模型aiga-dbp,根据预测模型aiga-dbp计算体积预测值;

对神经网络模型bp的权值和阈值进行动态改进,获得动态神经网络模型dbp,产生动态神经网络模型dbp的权值和阈值具体包括以下步骤:

调整神经网络模型bp隐含层与输出层之间的权值wkj;

调整wkj的目的是希望输出节点j的新输出o*pj比当前输出opj更接近目标值tpj,定义:

其中α代表接近度,在每个训练周期保持不变,并随隐含层节点数h的调整而变小,不考虑阈值,则有:

其中wkj和w*kj分别为更新前后的权值,ypk为隐含层输出,△wkj为wkj的改变量;

得到△wkj的求解方程:

其中,

根据最小平方和误差原则求解方程得到△wkj的近似解:

对每一个连接到输出节点j的隐含层节点k,计算k与j之间的权值变化△wkj,更新权值并计算平方和误差e,然后在k∈[1,h]区间选择一个最优的k,使得e最小;

调整神经网络模型bp输入层与隐含层之间的权值vik;

调整vik的目的是一旦神经网络算法陷入局部极小点,修改权值能够跳出该极小点,判断神经网络算法陷入局部极小点的条件是误差e的变化率△e=0,且e>0;

不考虑阈值,隐含层节点k的权值的改变通过以下方程求解:

其中δpj=f-1(ypk+δypk)-f-1(ypk),m为自然数,则隐含层输出ypk求解公式为:

其中△ypk为ypk的改变量,则有:

根据最小平方和误差原则求解公式构建的矩阵方程,可以算出:

综合公式计算隐含层与输出层之间权值的动态平均改变量

计算输入层与隐含层之间权值的动态平均改变量

m取10~20之间的自然数,获得神经网络模型bp的动态平均权值,根据神经网络模型bp的动态平均权值获得动态神经网络模型dbp。

运用自适应免疫遗传aiga算法优化动态神经网络模型dbp的权植和阈值,获得预测模型aiga-dbp具体包括以下步骤:

首先进行抗原识别,即均方误差的识别,产生初始的抗体(动态神经网络模型dbp的权值和阈值)后,进行抗体编码,然后计算抗体适应度和抗体浓度,根据计算的结果进行基于浓度的自适应抗体选择操作,若此操作满足条件,则获得合适的权值和阈值,并将结果输出;若此操作不满足条件,需要进行自适应交叉操作和自适应变异操作,并进行权值和阈值的更新,再重新计算抗体适应度和抗体浓度,直到获得满足条件的权值和阈值,最后根据满足条件的权值和阈值,获得预测模型aiga-dbp。

进一步,所述步骤一、对三角网络模型进行简化,从而得到简化三角网络模型,包括如下步骤:

(1)进行三角网格模型初始化,遍历三角网格中的每条有向边,若此边仅被一个三角形包含,则说明连接此边的两个顶点均为边界点;

(2)输入需要保留的顶点个数x,以及夹角阈值θ;

(3)判断现有顶点个数是否大于顶点阈值x;若是,则进行(4);若否,则进行(9);

(4)分别求出每一条边的边长,以及每个三角形的法向量,利用以下公式计算有向边的折叠代价cost(eij);并找出折叠代价最小的有向边euv,然后进行进行(5);

cost(eij)=‖eij‖·w(eij)(2)

其中w(eij)表示有向边eij的局部曲率,ti表示包含顶点vi的三角形集合,表示包含边eij的三角形集合,f.normal是指f面的法向量,n.normal是指n面上的法向量;它表示了包含有向边eij的三角面片与包含顶点vi的三角面片的法向最大值;

(5)判断u、v是否均为边界点。若是,则进行(6);若否,则进行(7);

(6)判断边界点u处的边界角是否大于阈值θ;若是,则进行(8);若否,则进行(3);

(7)判断u、v是否满足u是边界点,v不是边界点;若满足,则进行(3);若不满足,则进行(8);

(8)删除顶点u,将与顶点u连接的边关系连接至顶点v。并标记u、v两点均为受影响点,进行(3);

(9)结束;

所述步骤二、利用步骤一所得到的简化三角网络模型,建立弹簧-质点模型,得到简化三角网格通过弹簧-质点模型参数化于矩形域后的最终位置,包括如下步骤:

(a)读入三角网格模型,初始化质点质量m,弹簧劲度系数k,时间步长δt,迭代域值e;

(b)进行三角网格数据预处理,得到三角网格模型边界点序列,以有各顶点的邻接点序列;

(c)根据式(3)、(4)选择投影面,将三角网格模型进行投影,在投影面建立二维坐标系,计算三角网格顶点投影后的二维坐标(xi,yi);

a(x-x0)+b(y-y0)+c(z-z0)=0(3)

其中,(a,b,c)是投影面的法向量,x0,y0,z0是空间内一定点,(ai,bi,ci)是第i个三角形的法向量,n是不规则曲面片上三角形的个数;

(d)选取参数化矩形区域的四个顶点,根据投影后的三角网格的结构特征,选取四个边界点,固定于给定矩形域的顶点;

(e)由于点的移动,引发非固定点的受力情况发生改变;根据式(5),计算非固定点所受合力f(pi);若对于任意点pi,所受合力均小于给定阈值,即f(pi)≤e,则终止本次迭代,第一次终止迭代时转(i),第二次终止迭代时转(j);否则,继续;

其中,m为弹簧-质点模型系统的质量矩阵,q为质点坐标,k为刚度矩阵;

(f)根据式(6),由合力f(pi)计算每个点的加速度

其中,m是质点质量,为在t时刻质点pi的加速度;

(g)由加速度以及给定的时间步长δt,根据式(7)、(8)计算每个点的位移;

其中,分别为在t和t+δt时刻时质点pi的速度,分别为在t和t+δt时刻质点pi的位置;

(h)由(g)中的位移,计算每个点在经过δt时间后,点的当前位置转(e);

(i)将未固定的边界点按照空间网格中边界点与边界点间折线段的比例,固定至给定矩形域的四个边;再继续进行(i);

(j)得到参数化结果。

图2是本发明实施例提供的边界边的简化示意图。

图3是本发明实施例提供的弹簧-质点模型示意图。

图4是本发明实施例提供的简化被删点的参数化初始位置确定示意图。

下面结合具体分析对本发明作进一步描述。

弹簧-质点模型建立

弹簧-质点模型在计算机图形学中经常被用作模拟和控制三角网格的形变。在实际应用中弹簧-质点模型多用作模拟织物运动[38]和复杂平面展开等。其基本原理为:将三角网格中的点看作是质点,边看作是弹簧;边在原始三角网格中的长度对应弹簧的原长,边长变化对应于弹簧的拉伸或压缩,从而弹簧对质点产生拉力或者压力,引发质点运动。弹簧-质点模型示意图如图3所示,其中图3(a)表示三角网格中质点pi及其一领域边的初始位置,图3(b)表示质点pi在位置发生变动后的受力平衡情况。定义质点pi所受力为:

其中,c为弹簧的劲度系数,|pipik|和分别为pi点初始状态与发生变化后与其第k个邻接点pik之间的距离,为由质点pi*指向的方向,j表示质点pi邻接点的个数。

当对弹簧-质点模型中的某些质点进行约束,再通过弹簧-质点模型系统质点的运动,当各质点所受合力达到平衡时,就能够得到弹簧-质点模型系统中各质点的平衡位置。而整个弹簧-质点模型中质点的运动采用拉格朗日运动方程来进行描述,即:

其中,m、d以及k分别为弹簧-质点模型系统的质量矩阵、阻尼矩阵以及刚度矩阵,q为质点坐标。gq为整个系统的合内力向量,fq为系统的合外力向量。在弹簧-质点模型模拟三角网格形变时,gq以及fq均为零。在通常的情况下,我们一般不考虑阻尼项,这样,上述(3.4)式就可化简为:

其中,kq即为弹力。上述(5)式通常用欧拉方法来求解。整个弹簧-质点模型系统的平衡由每一个质点的平衡所构成。当δt较小时,质点pi在t到t+δt时刻的运动过程可由上述(5)经过简化后的简化拉格朗日方程来表示:

其中,m是质点质量,为在t时刻质点pi的加速度,分别为在t和t+δt时刻时质点pi的速度,分别为在t和t+δt时刻质点pi的位置。

因为由式(6-1)我们发现,在时刻t的速度会对时刻t+δt的速度产生一定的影响,这种影响也就是我们常说的惯性。从初始运动到结束运动,每隔分别δt时刻就会有一次惯性作用,这样就产生了累计效应。当质点在平衡位置达到最大速度的时候,若加速度与速度的方向相反,此刻质点仍然会按照原来速度的方向继续运动,而不是马上朝着加速度的方向运动。当这种情况发生时,整个弹簧-质点模型系统就会出现较大的振荡。而这种振荡的情况存在时,弹簧-质点模型系统就需要更多的时间达到每个质点的平衡,大大降低了算法的速度。除此之外,由于在算法中没有考虑阻尼因素,因此,这种累计效应还有可能引起发散,更加得不到质点的平衡。

采用毛等提出的忽略初速度的方法来解决上述问题。默认每一个时刻t,质点的初速度均为零,这样可以防止质点的惯性作用的影响,那么上述式(6-1)、(6-2)调整为:

另外,在本算法中,质点质量取常数。

当三角网格模型的弹簧-质点系统按上述方法建立之后,人工地选取三角网格模型的四个边界点,并将其先固定于某一个矩形的四个顶点。固定好四个顶点之后,其余质点所受合力不为零,即弹簧-质点系统失去平衡。则此时,再给出一个阈值θ,与时间间隔δt。我们每隔δt时刻计较一次每一个质点所受合力。当这个系统中的每一个质点所受合力均小于这个阈值θ时,就称这个弹簧-质点系统达到了平衡。此时,再根据三角网格原始模型中边界边连长比例,将剩余边界点按边长比例固定于给定的矩形边界上。再进行一次上述迭代。当所有质点达到平衡时,即整个弹簧-质点模型系统达到平衡时,终止迭代。这时的质点所在位置,就是简化三角网格通过弹簧-质点模型参数化于矩形域后的最终位置。

参数化结果修正

顶点参数化初始位置确定

由于所述的参数化过程中,原始网模型的投影建立弹簧-质点模型后,指定四个边界顶点拉伸至指定矩形域的四个顶点固定,引发其余点受力不平衡,从而给定时间步长,其余点进行迭代,这个过程中指定矩形域要远大于投影区域,这样才能得到更为均匀的参数化结果。因此顶点由初始位置到平衡位置位移较大,又因为时间步长不能太大,太大系统发散,所以迭代花费的时间较长。综上所述,要减少算法时间花费,就要尽量减少质点由初始位置到平衡位置的位移。

模型简化后,保留顶点经过前章所述的参数化方法,得到在指定矩形域中的二维坐标。将此作为本算法中保留顶点参数化的初始位置。原始模型中被删除顶点的初始位置是其一领域邻接顶点的参数化初始位置中心。则一领域区域为vi1vi2…vim(m为邻接顶点个数)的顶点vi的参数化初始坐标位置(xi,yi)的计算公式如式(9)所示:

其中,(xik,yik)(k=1...m)为的顶点vi的一领域邻接顶点vik的参数化初始位置。

被删除顶点参数化初始位置的确定通过举例说明,如图4所示,其中图4(a)—图4(d)是三角网格简化删除点过程图,图4(e)—图4(f)是被删点参数化位置确定过程。

图4.中,(a)—(d)为三角网格简化删除点过程,顶点vi、vj、vk依次由简化过程中被删除。(e)—(f)为被删点参数化位置确定过程。对简化后网格进行矩形域内参数化,假使顶点v1v2v3v4v5v6围成的区域中,内点经过简化,得到(a)—(d)中第四幅图,简化后的三维模型经过参数化过程,得到(e)—(f)中第一幅图,此时顶点v1、v2、v3、v4、v5、v6的参数化初始位置已得,分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)。记录当前状态最后被删除顶点vk以及删除vk之前即(e)—(f)中第二幅图vk的一领域区域v1v3v4v5。那么vk的参数初始位置(xk,yk)就由其邻接顶点v1、v3、v4、v5的参数化初始位置(x1,y1)、(x3,y3)、(x4,y4)、(x5,y5)按式确定:

vk参数化初始坐标是由其被删除前一步中当前一领域顶点坐标的平均值。vk的参数化初始坐标确定后,找到vk被删除前最后一个被删除的顶点vj,再按上述方法,找出vj被删除前的一领域区域v1v2v3vk,此时,其一领域顶点(包括vk)的参数化初始坐标均为已知,按上述方法求出vj的参数化初始坐标(xj,yj);vj的参数化初始坐标确定后,按上述方法,可运用已求出的vk、vj点参数化初始坐标求出vj被删除前最后一个被删除的顶点vi的参数化初始位置。

弹簧-质点模型建立

在得到所有点的参数化初始位置后,按原始三角网格模型的拓扑结构将顶点连接,得到初始参数化模型。在初始参数化模型上将顶点看作质点,将网格边看作无质量的弹簧,以原始三维三角网格中边的原长为弹簧原长,以当前边长为弹簧当前时刻的长度,建立弹簧-质点模型。质点的运动依然采用忽略初始速度的简化拉格朗日运动方程进行描述。

建立弹簧-质点模型后,固定模型的边界点不动,给定时间步长,让简化后保留的顶点以及被删除顶点均进行迭代,直至所有顶点受力平衡,终止迭代。简化后保留的顶点经过迭代达到平衡的过程,相当于对其参数化初始结果的修正。此时,得到原始三角网格中所有顶点的最终矩形域内参数化坐标。这种方法能够得到效果良好的参数化结果,但是如果需要算法的时间性能更优,即内点迭代次数更少,那么就需要减少参与迭代的内点个数。

将内点分为受影响点与不受影响点,受影响点是指在三角网格简化过程中,这个点所连接的边有被折叠的,那么这个点就是受影响点。不受影响点是指这个点所连接的边没有被折叠的。简化过程中,被删除的顶点一定是受影响点,保留顶点有的是受影响点,有的是不受影响点。在建立弹簧-质点模型后,固定边界点以及不受影响点不动,让受影响点进行迭代,直至所有顶点受力平衡,终止迭代。通过固定部分内点不动,即可提高算法效率。

以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。

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