0

我正在创建一个鼠标关节,我碰到了这个术语,它的实际含义。

鼠标关节的文档:-“鼠标关节用于使身体上的一个点跟踪指定的世界点。这是一个具有最大力的软约束。*这允许约束拉伸而不施加巨大的力。”

4

1 回答 1

0

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

b2DistanceJointDef DistJointDef;

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

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

频率赫兹将确定随着时间的推移身体应该伸展/收缩多少。而dampingRation将决定类似弹簧的效果会持续多久。

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

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

这是Box2dManual关于该主题的更多信息

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

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

于 2018-10-13T12:39:02.990 回答