首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹簧质量系统中球的运动学和动力学?

弹簧质量系统中球的运动学和动力学?
EN

Computer Graphics用户
提问于 2018-03-13 00:11:11
回答 1查看 84关注 0票数 0

我试图编写一个简单的弹簧质量系统模拟,在这个模拟中,一个球悬在顶部的字符串(弹簧)上,然后另一个球(由用户控制)可以移动并与这个悬挂球进行交互(碰撞)。

我已经编写了弹簧部分的动力学模拟,但我不知道足够的添加刚体动力学。我想要一个解释或一个来源,以了解如何算法做这个模拟。

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2019-02-21 04:23:46

刚体模拟与点质量情况非常相似,只是我们必须处理旋转运动(方向和角动量)。

除了质量、位置和线速度等常见的粒子属性外,我们还需要存储初始转动惯量\mathbf{\hat{I}}、当前角动量\mathbf{L}^n和电流取向\mathbf{R}^n。如果您使用的是数据驱动的粒子系统,那么这个步骤就像声明几个新属性一样简单。

随着质量的收缩,当前时间步长\mathbf{I}^n的转动惯量取决于电流取向\mathbf{R}^n\mathbf{I}^n=\mathbf{R}^n \mathbf{\hat{I}} (\mathbf{R}^n)^T

刚体的运动与直线运动类似:

\begin{align} \dot{\mathbf{R}} &= \omega^* \mathbf{R} \\ \frac{\mathbf{R}^{n+1} - \mathbf{R}^n}{\Delta t} &= (\omega^{n*}) \mathbf{R}^n \\ \omega^n &= (\mathbf{I}^n)^{-1} \mathbf{L}^n \end{align}

其中\omega是角速度,\omega^*是交叉积矩阵。

对于动力学,我们也有一个类似的牛顿的“f=ma”版本:

\frac{\mathbf{L}^{n+1} - \mathbf{L}^n}{\Delta t} = \tau^n

其中\tau是扭矩。

因为刚性球体之间会有相互作用,所以你也需要实现球体的碰撞检测。

现在我们已经知道了刚体的运动学和动力学。剩下的唯一的事情就是如何求解(积分)上述方程。朴素的前向欧拉可能不能给出稳定的结果。关于这个主题的一个很好的介绍可以在Witkin和Baraff SIGGRAPH课程上找到,这里还有一个更多的Bargteil和Shinar最近的SIGGRAPH课程

票数 1
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/6402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档