我使用box2d试验台中的绳索将动态体附着到静止体上。我希望动态的身体在静止的身体周围旋转时,一个'一个'或者' d'被压了。我不想使用旋转关节,因为旋转关节的长度是固定的。所以我想对物体施加离心力,有人能告诉我该怎么做吗?提前谢谢。
答案 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));
然后,您可以在每次更新时重新计算此力并将其应用于动态体。