如何在box2d中施加离心力?

时间:2014-12-20 18:51:42

标签: box2d

我使用box2d试验台中的绳索将动态体附着到静止体上。我希望动态的身体在静止的身体周围旋转时,一个'一个'或者' d'被压了。我不想使用旋转关节,因为旋转关节的长度是固定的。所以我想对物体施加离心力,有人能告诉我该怎么做吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不熟悉testbed,但你所要求的逻辑相当简单。你想要做的是找到动态体和静态体之间的角度。使用该角度,您只需创建一个新的Vector2(x,y),它将代表您与ApplyForce一起使用的力量。

在java中它看起来像:

    // This is the dimension of the vector representing the applied force (you choose that)
    float forceDimension = 10;

    // This is the angle you have to find (I use PI since the Math class uses radians)
    // PI radians == 90 degrees (your dynamic body would then be directly above your static body)
    double angle = Math.PI;

    // This is the actual vector of the force
    Vector2 force = new Vector2(forceDimension * (float) Math.sin(angle), forceDimension * (float) Math.cos(angle));

然后,您可以在每次更新时重新计算此力并将其应用于动态体。