11

MIT 6.837:Mass-Spring 质点-弹簧系统

 2 years ago
source link: https://ksmeow.moe/mit-6-837-mass-spring/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

质点-弹簧系统也是一种常用于进行物理模拟的模型,可以通过恰当的建模来模拟绳子、布料等具有一定弹性的物体。

41 - MIT 6.837:Mass-Spring 质点-弹簧系统

弹力是一个我们自初中就接触的话题,根据 Hooke 定律,弹簧内部的弹力与形变量成正比,比例系数定义为 K(N/m),方向朝形变的反方向,形式化表达为

F(Pi,Pj)=K(L0–||PiPj||)PiPj||PiPj||

质点-弹簧系统

42 - MIT 6.837:Mass-Spring 质点-弹簧系统

对于一些有弹性的物体,我们可以利用弹簧这一模型反映内部的弹力,结合粒子系统的思想,就得到了质点-弹簧系统。系统中包含若干质点,以及将质点连起来的弹簧网络。这一模型可用于模拟绳子、布料、头发等材质。

在质点-弹簧系统中包含三种力:

  • 结构力:反映系统中一些不变参数的力,例如某点的位置固定等,这实际上是一组常量约束
  • 内部变形力:当结构变形时,产生的弹力,例如布垂下时向上拉、希望将其变平的力
  • 外部力:重力等外界因素对系统产生的力

头发可看做是难以伸长、易于弯曲、弯曲引起弹力的模型。与常规的弹簧不同,对头发的建模应将变形力与弯曲程度关联,可取质点所连线之间的夹角反映弯曲程度。

43 - MIT 6.837:Mass-Spring 质点-弹簧系统44 - MIT 6.837:Mass-Spring 质点-弹簧系统

布料通常利用质点和弹簧织成的网络建模,其中包含多种弹簧:

  • 结构弹簧:连接同行同列的相邻质点,将质点连接成一个面
  • 剪力弹簧:四边形容易被拉伸变形,布料并不易受剪力变形,因此添加对角相邻的弹簧以抵抗这种变形
  • 弯曲弹簧:同行同列隔一个质点连接,用于提供抵抗布料弯曲的力
45 1024x843 - MIT 6.837:Mass-Spring 质点-弹簧系统

布料模拟时通常会添加约束,例如规定悬挂布料的位置。悬挂处位置不变,故受力应当为 0,此处的结构力应为该点所受其他力合力的反向,故不为一个确定的力,而随其受其他力的情况变化。实现时,不必计算此力,而可以直接忽略添加了约束的点的受力即可。

布料模拟中也可能会遇到一些问题:

  • 弹性问题:布料的形变通常较小,需要合理设置弹簧的弹性系数来避免形变过大,也可限制布料的形变程度
  • 离散化问题:离散化得到的质点数会影响模拟结果,因此需要选用恰当的质点数,以得到和现实情况类似的结果
  • 碰撞问题:质点数很多时,布料与其他物体的碰撞是一个很棘手的问题,因此需要解决碰撞检测与稳定性问题

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK