【问题标题】:What is soft constraint in box2d?box2d 中的软约束是什么?
【发布时间】:2018-10-13 12:06:23
【问题描述】:

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

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

【问题讨论】:

    标签: libgdx box2d box2d-joints


    【解决方案1】:

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

    b2DistanceJointDef DistJointDef;

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

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

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

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

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

    这里有更多来自Box2dManual的主题信息

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

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

    【讨论】:

    • 所以你的意思是说这个类似 Spring 的属性被称为软约束。
    • @shubham 是的。软约束是导致 box2d 中类似弹簧的属性的原因。
    猜你喜欢
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多