实施棱柱联合物理学

时间:2012-05-28 11:17:43

标签: math box2d physics game-physics

我正在尝试为我在C ++,OpenframeWorks中制作的应用程序实现自己的物理。我目前正在使用Box2D,但我不需要碰撞检测,所以我想要更轻的东西。

我有一个重力世界和一个动态物体,其运动受到任意长度的任意角度的棱柱关节约束,附着在静止物体上。使用联合电机模拟摩擦力。

我看了

Resources for 2d game physics

但是这里的一切似乎都集中在构建完整的物理引擎上,而我不需要这样做。有人能指出我正确的数学方向吗?

2 个答案:

答案 0 :(得分:0)

你只需要将重力分成两个部分;沿着棱柱关节轴,以及其他任何东西。 (见Free body diagrams

使用重力矢量和轴矢量之间的vector dot product可以很容易地实现这一点。如果首先将轴向量缩放为长度1,则点积的结果将是沿轴的力。

要将力转换为加速度,您只需要除以移动物体的质量。

答案 1 :(得分:0)

如果Box2D有你想要的东西,我建议你重新考虑你的“更轻”的要求。除非你可以量化使用带有更多字节的库所造成的危害,否则我会说这个好处将超过你为自己编写它的成本。

如果你对物理有很好的理解,并想学习如何去做,那么一定要继续。如果没有,请使用比您提供的知识更多的人,并忘记图书馆的大小。