0

请看示意图:

摆动图

在 box2D 中,我试图想出一种方法可以将旋转臂连接到蓝色盒子并让旋转臂伸展或收缩。

蓝色框设置为使用棱柱接头向左和向右移动以充当轨道/轨道。当蓝色框左右移动时,动量将导致摆臂摆动。我有这个工作正常。

我的问题是我无法可靠地想出一种方法来将底部的绿色盒子上下摆动臂。如果玩家向上按压,我希望底部的绿色框会向上移动摆臂。如果玩家停止向上按压,则底部的绿色框将停止并保持在摇臂上的任何位置。我想这样做,但要保持摆臂的动力。

我只会在蓝色框和底部绿色框之间绘制一条线,因此看起来它正在扩展或收缩。

我尝试过棱柱关节和距离关节,但是当我为关节设置新的限制或距离时,它没有流体运动。关节的动作不够刚性。例如,当缩短棱柱关节时,我不知道如何在新关节长度的末端重新定位底部绿色框,但仍保持其先前的动量和旋转。

有任何想法吗?

4

1 回答 1

-1

我很难在没有看到您已经完成的工作的情况下给您代码。但是解决您的问题的方法是使用...数学。

计算钟摆摆动的速度实际上是一个众所周知的问题。“周期”是钟摆完成一次上下摆动所需的时间,控制钟摆速度的方程为:

T = 2*PI*sqrt(L/g)    where "L" is the length of the pendulum

因此,如果您可以通过这种方式对您的问题进行参数化,当用户将绿色框“向上”移动时,该绿色框将减少L,振荡周期 ( T) 将下降,因此钟摆将加速。

作为旁注,如果您希望蓝色框能够四处移动,那么您所拥有的就是复摆,您的摆振荡周期方程将修改为:

T = 2*PI*sqrt(I/mgR)    where "R" is the adjusted length of the pendulum

其中 I 是盒子的转动惯量,等于:

I = (m/6) * h^2         where h is the length of one side of the blue box
于 2012-12-21T03:32:50.257 回答