质点弹簧

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果dist不为0,则:
F0= (dist) * m_MouseForceKs+p1->f
(其中m_MouseForceKs为弹簧的阻尼系数, p1->f为m_Pick[0]标记的质点本来受到的力) 如果拉动m_Pick[1]标记的质点,计算此质点F1(计 算方法同上)
仿真控制主函数:
计算仿真的总时间Time: 如果使用固定步长,则:
在质点-弹簧模型中,有三种类型的弹簧:
结构性弹簧(structural spring):连接紧密相连的横向和纵 向质点,起到固定布料结构的作用。 扭曲弹簧(shear spring):也叫剪切弹簧,连接在一个对 角线上的相邻质点,起到防止布料扭曲变形的作用。 拉伸性弹簧(flexion spring):也叫弯曲弹簧,连接纵向和 横向相隔一个质点的两质点,使布料在折叠时边缘圆滑。
具体结果如下图所示:
现阶段质点-弹簧模型的主要应用领域
虚拟手术仿真
人体软组织形变的仿真是虚拟手术的关键技术之一, 此模型可用于对人体活性软组织器官进行物理计算机 建模。 下图是用镊子进行软组织表面夹取:
布料仿真
布料模拟结果真实,已经在影视特效制作、计算机 辅助三维服装设计和视频游戏领域获得了越来越广泛 的应用。
Time = m_LastTime + (m_MaxTimeStep * m_TimeIterations);
(其中m_MaxTimeStep为最大时间步长, m_TimeIterations 为迭代次数, m_LastTime为上一次仿真结束时间) 否则, Time = GetTime() * m_TimeIterations; (GetTime()为获取此系统开始时间)
如果有阻尼系数未知,则阻尼系数用定值阻尼系数 DEFAULT_DAMPING,则F=DEFAULT_DAMPING*V
用户力 外界施加给质点的力,这里称为用户力,用Fu表示; 计算每个弹簧对各质点力的作用
在计算各个弹簧时,p1为弹簧的左端点,p2为弹 簧的右端点; 计算弹簧此时的长度dist,则弹簧的弹性力为: Hterm=Ks * (dist - rest) (其中Ks为胡克系数,rest为弹簧原长); 计算弹簧的阻尼力 Dterm=(DotProduct(&deltaV,&deltaP) * spring->Kd) / dist (其中 deltaV为p1,p2点速度之差,deltaP为p1,p2 点位置之差,kd为阻尼系数, DotProduct 内积)
质点-弹簧模型
结构简单易用、 算法容易实现且效率较高
有限元模型
它把形变体划分成许多个有限单元,并在各个有限单元 内实现形变体几何和物理的连续特性。能准确地模拟物 体变形,但是其计算过程很复杂,且其能准确模拟的变 形幅度一般不到物体尺寸的1 鉴于现在对于变形效率及效果的综合要求一般采用质点-弹 簧模型
质点-弹簧模型介绍 (以布料模拟为例子)
质点-弹簧模型将一张布料看作成一张由质点构成的网,质 点的位置代表布料上某一点的空间位置。 质点没有大小,但有一定的质量,且质量均匀分布。 在这个模型中,是一种虚拟的弹簧:每一根弹簧连接两个质 点,而每个质点可能连接任意根弹簧。这里的弹簧是拥有线 性弹性系数的遵循胡克定律的可伸缩弹簧 下面分别是面模型和体模型拓扑结构:
质点-弹簧模型
主要内容
研究背景 质点-弹簧模型介绍 应用到文字变形
研究背景
图形的变形过程仿真和可视化是计算机图形学的一个重要研 究课题。在布料模拟、医学手术模拟等许多领域中都有广泛 的应用。 目前主要的变形模拟模型主要分以下几种:
几何模型:
物体的形状完全用数学函Байду номын сангаас来描述,通过几何插值的 方法直接改变物体表面的控制点从而改变物体形状,这 种方法计算速度快,相对容易实现,但是不具有物理意 义,只能模拟一些简单的模型 。
弹簧力为: springForce= -(Hterm + Dterm); 质点p1受到的力: p1->f= p1->f +springForce= p1->f -(Hterm + Dterm) 质点p2受到的力: p2->f= p2->f -springForce= p2->f +(Hterm + Dterm) 计算鼠标拉力对质点的作用 计算鼠标力作用的长度: dist= m_MouseDragPos[0]- p1->pos (m_MouseDragPos[0]为鼠标的位置, p1->pos为m_Pick[0]标记的质点的位置);
仿真
点击运行菜单,当:
m_LastTime < Time ∆t = Time - m_LastTime;
如果 ∆t大于最大步长m_MaxTimeStep, 则 ∆t =m_MaxTimeStep; 仿真时间 ∆t 内图像的变化情况;
m_LastTime=m_LastTime+ ∆t ;
否则仿真∆t 时间内图像的变化情况;
物理模型:
物体的模型用微分方程来描述,结合物体的物理属性, 运用力学理论建立微分方程。该方法能反应物体的真实 情况,但速度相对较慢。
混合模型:
结合几何模型与物理模型,其速度及逼真度介于两种 模型中间。 由于可以结合物理属性且获得更逼真的模拟效果,现在的研 究中一般采用物理模型,常用的物理模型有以下两种:
受力分析
前面介绍了质点-弹簧模型中质点的连接方式,为使模型能够运动起来, 必须对它进行受力分析,下面就来看看质点的受力情况。 质点的位置受内部弹簧的弹性力(包括结构力,剪切力,弯曲力)和 物体外部受力(如重力,惩罚力,阻尼力,空气阻力和用户自定义的 力等)影响。 在某一时刻多个力同时作用于物体上,每个力的向量之和为最后的合 力,对于布料上的每个质点,可以将所有作用于质点上的力相加,来 决定加速度:
X X表示质点的位置矢量, ∈ R 3是求解目标,m表示质点的质量, 合 表示 F 物体所受合力。而质点所受的内外力之和分别随着时间和位置的变化 而变化。
关于文字变形受力分析:
首先,对所有的质点计算力F; 初始化每个顶点力为0,即F=0; 计算质点的重力(质量均匀); 如果有阻尼系数给出,则F=kd*V(kd为阻尼系数,V为振子 速度),阻尼力与速度大小成正比,速度方向成反比;
相关文档
最新文档