-1

我正在阅读通过示例编程游戏 AI 的书,他提供了导致实体减速以便它优雅地到达目标的转向行为的代码。在计算距离之后,从目标到源的距离然后他(基本上)这样做

double speed = dist/deceleration;

我只是不明白这是从哪里来的,我只是错过了一些非常明显的东西吗?它没有在书中列为已知错误,所以我猜它是正确的。

4

2 回答 2

2

如果这有一些物理上的真实性,那么这些单位在任何一方都会匹配。

单位比较

据我了解,这类似于芝诺的悖论,您试图到达某物,但您永远无法到达那里,因为您总是只走n了剩余距离的四分之一。

认为

  • 模拟以每次一秒的间隔进行。
  • deceleration= 5
  • distance= 1000 米

有了这些初始条件,speed将设置为200每秒米。因为模拟以一秒的间隔进行,所以我们将精确地行进200几米(即剩余距离的五分之一),并最终到达距离800目标几米的距离。新速度确定为:160米每秒

以下是前 30 秒内发生的情况:

公式
前三十秒剧情

最后 30 秒:
最后三十秒剧情

最后 10 秒:
最后十秒剧情

观察

  • 在前 30 秒内,我们行进了大约 998 米
  • 在前 50 秒内,我们覆盖了 999.985 米
  • 在最后 10 秒内,我们仅覆盖约 1.2 厘米

如您所见,您几乎很快就到达了那里,但需要很长时间才能靠近。

WolframAlpha 绘制的图

于 2012-09-16T11:38:37.243 回答
0

也许您的计算中缺少某些东西。对于恒定的加速(或减速),忽略初始条件,速度为

v = a * t

距离是

d = a * t^2 / 2

如果你在两个方程中消除 t 你得到

v = a * sqrt(2 * d / a)
于 2012-09-16T13:27:44.437 回答