请参见图表:
在box2D中,我试图想出一种方法,我可以将一个旋转臂连接到蓝色方框,并使枢轴臂伸展或收缩。
蓝色框设置为使用棱柱接头左右移动,作为轨道/轨道。当蓝色框左右移动时,动量会使摆臂摆动。我的工作正常。
我的问题是,我无法可靠地想到一种方法可以将摇篮底部的绿色框上下移动。如果玩家按下,我想要它,以便底部的绿色框将向上移动摆臂。如果玩家停止向上按压,则底部的绿色框将停止并保持在摆臂的任何位置。我想这样做但保持摆臂的动力。
我只会在蓝框和底部绿框之间渲染一条线,所以看起来它正在延伸或收缩。
我尝试了棱柱关节和距离关节,但是当我为关节设定新的限制或距离时,它没有流体运动。关节不够僵硬。例如,当缩短棱柱关节时,我无法弄清楚如何在新关节长度的末端重新定位底部绿色框,但仍保持其先前的动量和旋转。
任何想法?
答案 0 :(得分:-1)
如果没有看到你已经完成的工作,我很难给你代码。但问题的解决方案是使用......数学。
计算摆锤摆动的速度实际上是well-known problem。 “时期”是钟摆完成一次倒车摆动所需的时间,而控制钟摆速度的等式是:
T = 2*PI*sqrt(L/g) where "L" is the length of the pendulum
因此,如果您可以通过这种方式对问题进行参数化,那么当用户移动绿色框“向上”将减少L
并且振荡周期(T
)将会下降,因此钟摆会加快。
作为旁注,如果你想让蓝色框能够移动,那么你所拥有的被称为compound pendulum,你的摆锤振荡周期的等式将被修改为:
T = 2*PI*sqrt(I/mgR) where "R" is the adjusted length of the pendulum
我是盒子的惯性矩,等于:
I = (m/6) * h^2 where h is the length of one side of the blue box