弹丸撞击其路径顶点的坐标

时间:2010-07-12 17:44:18

标签: physics chipmunk

我有一个射弹,我想通过其路径顶点的特定坐标。通过将它产生的速度值插入到chipmunk的cpBodyApplyImpulse函数中,我一直在使用giogadi概述here的极好方程。

这个等式有一个我无法弄清楚的缺点。它只适用于我想要击中的坐标的y值高于大炮(我的射弹开始的地方)。这意味着我无法向下拍摄。

任何人都可以帮我找到一个合适的方程式,无论目标与大炮的位置有什么关系吗?

1 个答案:

答案 0 :(得分:0)

如上所述,没有任何方法可以使顶点低于大炮的高度(不使重力向后工作)。但是,可以使射弹穿过大炮下方的一个点;方程都是here。您需要解决的等式是:

angle = arctan((v^2 [+-]sqrt(v^4 - g*(x^2+2*y*v^2)))/g*x)

你选择一个速度并插入目标的x和y位置 - 假设大炮位于(0,0)。 [+-]意味着您可以选择任一根。如果平方根函数的参数为​​负(假想的根),则需要更大的速度。因此,如果您处于“射程”范围内,则对于任何特定的速度,您都有两个可能的角度(除了在最大范围45度的情况下,两个根应该给出相同的答案)。

我怀疑一条轨迹往往比另一条轨迹“看起来”更明智,但是一旦你有了一些工作,这就是可以玩的东西。对于目标位于大炮上方的情况,您可能希望坚持使用顶点放牧代码。