【问题标题】:Physics - Projectile get launch angle to hit desired location?物理 - 弹丸获得发射角度以击中所需位置?
【发布时间】:2013-01-07 10:22:56
【问题描述】:

我正在游戏中编写一个简单的球弹。 更新看起来很像:

velocity += gravity;
velocity *=0.9;
pos += vel;

有没有办法设置发射的角度和力量以击中鼠标指定的点? 喜欢 peggle,http://youtu.be/4KbNiWsgJck?t=45s

我知道有一个解决方案,我几年前使用过,但我找不到。 我相信它把我的更新变成了一个二次公式,或者推导出来什么的。 它有两个用二次方程求解的解。

ps-希望这可以是 3D,但我也可以使用 2D 解决方案,因为我的曲线是 2D

有什么帮助吗? 谢谢, 丹

【问题讨论】:

  • 在那个视频中,它看起来好像是用户控制角度,而不是力量(至少一开始——我不会坐下来看完整个事情)。这就是你想要的吗?
  • 速度和角度没有单一的解决方案,而是速度作为角度函数的一整套参数解决方案,反之亦然。至于 2D 与 3D,实际轨迹实际上是 2D - 它完全位于垂直平面内(除非有侧风吹或其他侧向力)。

标签: physics projectile


【解决方案1】:

是的,您可以这样做。如果你可以改变角度和速度,你就会拥有比你需要的更多的可变性,所以你必须找到一组合理的参数,这并不难。基本方程是:

x = x0 + t*v0x
y = y0 + v0yt + (1/2)ayt2

在这里,x 和 y 将是您要击中的点,t 将是您击中它们的时间。 t 不会出现在最终解决方案中,但您将使用它作为中介来计算您想要的值。

然后,基本上,为 v0x 选择一个合理的值。使用 x 方程,找出当目标被击中时 t 将是什么。然后将该值代入 y 方程,求解 v0y。然后,这将为您提供一对 v0x 和 v0y 值,它们可以击中目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2018-03-19
    相关资源
    最近更新 更多