我正在尝试为我在C ++,OpenframeWorks中制作的应用程序实现自己的物理。我目前正在使用Box2D,但我不需要碰撞检测,所以我想要更轻的东西。
我有一个重力世界和一个动态物体,其运动受到任意长度的任意角度的棱柱关节约束,附着在静止物体上。使用联合电机模拟摩擦力。
我看了
但是这里的一切似乎都集中在构建完整的物理引擎上,而我不需要这样做。有人能指出我正确的数学方向吗?
答案 0 :(得分:0)
你只需要将重力分成两个部分;沿着棱柱关节轴,以及其他任何东西。 (见Free body diagrams)
使用重力矢量和轴矢量之间的vector dot product可以很容易地实现这一点。如果首先将轴向量缩放为长度1,则点积的结果将是沿轴的力。
要将力转换为加速度,您只需要除以移动物体的质量。
答案 1 :(得分:0)
如果Box2D有你想要的东西,我建议你重新考虑你的“更轻”的要求。除非你可以量化使用带有更多字节的库所造成的危害,否则我会说这个好处将超过你为自己编写它的成本。
如果你对物理有很好的理解,并想学习如何去做,那么一定要继续。如果没有,请使用比您提供的知识更多的人,并忘记图书馆的大小。