本发明涉及虚拟仿真,具体而言,涉及一种肌肉模型及其构建方法和运动模拟方法。
背景技术:
1、肌肉的运动分析是医学教育的重要内容。学习肌肉的运动可以帮助学生更好地了解人体关节的运动原理,更深刻地理解各类关节疾病的发病机制,从根本上掌握各类康复治疗方案的作用机理,从而对学生的实际操作起到促进作用。
2、目前,对肌肉运动的模拟主要有三类方法:(1)通过3dmax和maya等三维建模软件参考实际的肌肉运动对三维的肌肉模型进行运动动画的制作,该方法生成的肌肉运动动画是固定的,不可交互的,学习自由度低,且十分耗费人力;(2)通过有限元等数值分析的方法对肌肉运动进行精确的数值模拟,该方法计算量比较大,无法用作实时的交互模拟;(3)通过实时形变运动模拟方法对肌肉运动的形变进行模拟,该方法的模拟精度相对较低。
技术实现思路
1、本发明提供一种肌肉模型及其构建方法和运动模拟方法,以解决肌肉运动实时模拟真实度低的问题。
2、本发明提供一种肌肉模型的构建方法,包括以下步骤:
3、创建肌肉网格模型,所述肌肉网格模型的表面具有多个表面顶点;
4、于所述肌肉网格模型内部勾画肌肉纤维走线,所述肌肉纤维走线具有多个纤维顶点;
5、于所述表面顶点和所述纤维顶点之间建立映射关系;
6、基于所述表面顶点、所述纤维顶点以及两者之间的映射关系,创建顶点关联约束;
7、基于所述肌肉网格模型与骨骼模型之间的相对位置,创建位置关联约束。
8、优选的,所述肌肉网格模型为三角网格模型。
9、优选的,所述于所述表面顶点和所述纤维顶点之间建立映射关系,包括以下步骤:
10、选择最接近于所述肌肉网格模型表面的肌肉纤维走线为目标纤维走线;
11、创建以所述目标纤维走线的纤维顶点为球心的球体;
12、将所述球体与所述肌肉网格模型做碰撞检测;
13、根据碰撞检测结果,建立所述表面顶点与所述纤维顶点之间的映射关系;
14、优选的,所述映射关系包括关联系数;
15、所述建立所述表面顶点与纤维顶点的映射关系,包括以下步骤:
16、若表面顶点xa只被某个纤维顶点为球心建立的球体所包含,则建立所述表面顶点xa与所述某个纤维顶点的映射关系,且所述表面顶点xa与所述某个纤维顶点的关联系数为:μ=1;
17、若表面顶点xa被n个纤维顶点为球心建立的球体所包含,则建立所述表面顶点xa与第i个所述纤维顶点的映射关系,所述表面顶点xa与第i个纤维顶点vi的关联系数为:
18、
19、其中,n≥2,为表面顶点xa与纤维顶点vi的距离;为表面顶点xa与纤维顶点vn的距离,n=1,2,…,i,…,n。
20、优选的,所述基于所述表面顶点、所述纤维顶点以及两者之间的映射关系,创建顶点关联约束,包括以下步骤:
21、于两个相邻所述表面顶点之间创建第一虚拟弹簧约束;
22、于两个相邻所述纤维顶点之间创建第二虚拟弹簧约束;
23、基于所述表面顶点与所述纤维顶点之间的映射关系,于所述表面顶点与所述纤维顶点之间创建第三虚拟弹簧约束。
24、优选的,所述基于所述肌肉网格模型与骨骼模型之间的相对位置,创建位置关联约束,包括以下步骤:
25、选取肌肉网格模型附着于所述骨骼的附着顶点,限制所述附着顶点与骨骼的相对位置不变,创建位置关联约束。
26、本发明所提供的肌肉模型的构建方法的有益效果在于:采用本发明所提供的构建方法过程中,创建肌肉网格模型,肌肉网格模型的表面具有多个表面顶点;确定所模拟肌肉的纤维走向,在肌肉网格模型内部进行简单的勾画肌肉纤维走线即可完成对模拟的预处理工作,对使用者更加友好,要求更低,同时肌肉纤维走线具有多个纤维顶点;表面顶点和纤维顶点间建立映射关系,明确表面顶点与纤维顶点间的关联程度;基于所述表面顶点、所述纤维顶点以及两者之间的映射关系,创建顶点关联约束;基于所述肌肉网格模型与骨骼模型之间的相对位置,创建位置关联约束,模拟肌肉和骨骼的位置关系,保证关节运动时骨骼与肌肉的关联性;在肌肉纤维、顶点关联约束和位置关联约束共同的作用下,使构建的肌肉模型的各部分间有着更高的关联性,增加了肌肉模型的真实度。
27、本发明还提供一种肌肉模型,该肌肉模型由上述构建方法构建而成。
28、本发明所提供的肌肉模型的有益效果在于:该肌肉模型在模拟肌肉运动时有更高的真实性,同时满足了肌肉运动实时模拟的要求,具体详见上述构建方法的有益效果在此不再赘述。
29、本发明还提供一种肌肉模型的运动模拟方法,包括以下步骤:
30、根据胡克定律及第一弹簧约束,计算得到第一虚拟弹簧变形的第一虚拟受力为:其中,k1为第一虚拟弹簧的劲度系数;表示表面顶点xb与表面顶点xc之间第一虚拟弹簧的当前长度;表示该第一虚拟弹簧的初始长度;表示顶点xb当前坐标值;表示顶点xc的当前坐标值;
31、根据胡克定律及第二弹簧约束,计算得到第二虚拟弹簧变形的第二虚拟受力为:其中,k2为第二虚拟弹簧的劲度系数;表示纤维顶点vi与纤维顶点vj之间第二虚拟弹簧的当前长度;表示该第二虚拟弹簧的初始长度;为纤维顶点vi当前坐标值;表示纤维顶点vj的当前坐标值;
32、根据胡克定律及第三弹簧约束,计算得到第三虚拟弹簧变形的第三虚拟受力为:其中,k3为第三虚拟弹簧的劲度系数;为表面顶点xb与第i个纤维顶点vi之间的第三虚拟弹簧的当前长度,为第三虚拟弹簧的初始长度,为表面顶点xb与第i个纤维顶点vi之间的关联系数,为表面顶点xb的三维坐标,为纤维顶点vi的三维坐标;
33、基于第一虚拟受力和第三虚拟受力,计算所述第一虚拟受力和所述第三虚拟受力的向量和,得到所述表面顶点xb的合力fb;根据牛顿第二定律,计算得到所述表面顶点xb的加速度ab;根据所述表面顶点xb的加速度ab,计算得到的表面顶点xb的位置变化量;
34、基于第二虚拟受力和第三虚拟受力,计算所述第二虚拟受力和所述第三虚拟受力的向量和,得到所述纤维顶点vi的合力fi;根据牛顿第二定律,计算得到所述纤维顶点vi的加速度ai;根据所述纤维顶点vi的加速度ai,计算得到的纤维顶点vi的位置变化量;
35、判断各表面顶点xb的位置变化量是否小于第一预设阈值δb,且判断各纤维顶点vi的位置变化量是否小于第二预设阈值δi,若是,则确定所述肌肉模型中所有弹簧均处于稳定状态,运动模拟结束。
36、本发明所提供的一种肌肉模型的运动模拟方法的有益效果在于:模拟肌肉主动运动,控制肌肉纤维走线变化,虚拟弹簧平衡状态被打破,虚拟弹簧产生虚拟受力并作用在各个顶点,计算各个顶点所受虚拟受力的合力,求出各个顶点的位置变化量,与预设阈值比较,确定肌肉模型稳定后的状态,得到肌肉运动模拟结果,具体详见上述构建方法的有益效果在此不再赘述。
37、本发明还提供另一种肌肉模型的运动模拟方法,包括以下步骤:
38、根据胡克定律及第一弹簧约束,计算得到第一虚拟弹簧变形的第一虚拟受力为:其中,k1为第一虚拟弹簧的劲度系数;表示表面顶点xb与表面顶点xc之间第一虚拟弹簧的当前长度;表示该第一虚拟弹簧的初始长度;表示顶点xb当前坐标值;表示顶点xc的当前坐标值;
39、根据胡克定律及第二弹簧约束,计算得到第二虚拟弹簧变形的第二虚拟受力为:其中,k2为第二虚拟弹簧的劲度系数;表示纤维顶点vi与纤维顶点vj之间第二虚拟弹簧的当前长度;表示该第二虚拟弹簧的初始长度;为纤维顶点vi当前坐标值;表示纤维顶点vj的当前坐标值;
40、根据胡克定律及第三弹簧约束,计算得到第三虚拟弹簧变形的第三虚拟受力为:其中,k3为第三虚拟弹簧的劲度系数;为表面顶点xb与第i个纤维顶点vi之间的第三虚拟弹簧的当前长度,为第三虚拟弹簧的初始长度,为表面顶点xb与第i个纤维顶点vi之间的关联系数,为表面顶点xb的三维坐标,为纤维顶点vi的三维坐标;
41、基于第一虚拟受力和第三虚拟受力,计算所述第一虚拟受力和所述第三虚拟受力的向量和,得到所述表面顶点xb的合力fb;根据牛顿第二定律,计算得到所述表面顶点xb的加速度ab;根据所述表面顶点xb的加速度ab,计算得到的表面顶点xb的位置变化量;
42、基于第二虚拟受力和第三虚拟受力,计算所述第二虚拟受力和所述第三虚拟受力的向量和,得到所述纤维顶点vi的合力fi;根据牛顿第二定律,计算得到所述纤维顶点vi的加速度ai;根据所述纤维顶点vi的加速度ai,计算得到的纤维顶点vi的位置变化量;
43、判断各表面顶点xb的位置变化量是否小于第一预设阈值δb,且判断各纤维顶点vi的位置变化量是否小于第二预设阈值δi,若是,则确定所述肌肉模型中所有弹簧均处于稳定状态,运动模拟结束。
44、优选的,所述运动模拟方法还包括以下步骤:
45、对所述肌肉模型的运动模拟结果进行可视化渲染。
46、本发明所提供的另一种肌肉模型的运动模拟方法的有益效果在于:模拟肌肉被动运动,由于创建了位置关联约束,操作骨骼发生位置变化,肌肉纤维走线随之发生位置变化,虚拟弹簧平衡状态被打破,产生虚拟受力并作用在各个顶点,计算各个顶点所受虚拟受力的合力,求出各个顶点的位置变化量,与预设阈值比较,确定肌肉模型稳定后的状态,得到肌肉运动模拟结果,对肌肉模型的运动模拟结果进行可视化渲染,方便用户对结果进行观察,具体详见上述构建方法的有益效果在此不再赘述。