Box2d中的软约束是什么?

时间:2018-10-13 12:06:24

标签: libgdx box2d box2d-joints

我正在创建鼠标关节,但在这个词里我碰到了什么,这实际上是什么意思。

鼠标关节的文档:-“鼠标关节用于在身体上的一个点上跟踪指定的世界点。这是一个软约束,具有最大作用力。  *这样可以使约束得以拉伸,而无需施加巨大的力。”

1 个答案:

答案 0 :(得分:0)

假设我们有一个远距离关节;

b2DistanceJointDef DistJointDef;

您可以通过调整频率和阻尼比来获得类似弹簧的效果。

DistJointDef.frequencyHz = 0.5f;
DistJointDef.dampingRatio = 0.5f;

频率Hz将确定人体应随时间进行拉伸/收缩的程度。 而阻尼系数将决定类似弹簧的效果持续多长时间。

这些原理也适用于鼠标关节。您可以修改它们的频率和阻尼比以达到类似的效果。

如果我没记错的话,您也可以在车轮关节上应用软约束。

这里有Box2dManual

上有关该主题的更多信息
  

通过调整定义中的两个常数可以实现柔软性:频率和阻尼比。将频率视为谐波振荡器的频率(如吉他弦)。频率以赫兹为单位。通常,频率应小于时间步长频率的一半。因此,如果您使用60Hz时间步长,则距离关节的频率应小于30Hz。原因与奈奎斯特频率有关。

     

阻尼比是无量纲的,通常在0到1之间,但可以更大。在1处,阻尼至关重要(所有振荡都应消失)。