简单的转向行为:解释这条线

时间:2012-09-16 08:02:27

标签: math artificial-intelligence physics

我正在阅读“通过示例编程游戏AI”这本书,他给出了代码 转向行为,导致实体减速以使其到达 优雅地对准目标。计算dist后,距目标的距离为 然后他(基本上)做这个来源

double speed = dist/deceleration;

我无法理解它来自哪里,我只是遗漏了一些东西 真的很明显?它没有被列为书中的已知错误,所以我猜它 是对的。

2 个答案:

答案 0 :(得分:2)

如果对此有一些实际的真相,那么这两个单位都会匹配。

unit comparison

根据我的理解,这类似于Zeno的悖论,你试图达到某种目的,但是你永远不会到达那里,因为你总是只剩下剩余距离的n个。{/ p>

假设

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

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

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

formula
first thirty seconds plot

最后30秒:
last thirty seconds plot

最后10秒:
last ten seconds plot

观察

  • 在前30秒内,我们行程大约998米
  • 在最初的50秒内,我们覆盖了999.985米
  • 在最后10秒内,我们仅覆盖~1.2cm

正如你所看到的,你很快就会到达那里,但需要很长时间才能接近。

WolframAlpha的绘图

答案 1 :(得分:0)

也许你的计算中缺少一些东西。对于持续的加速(或减速),并忽略初始的谴责,速度是

v = a * t

,距离是

d = a * t^2 / 2

如果你在两个方程式中消除t,那么

v = a * sqrt(2 * d / a)
相关问题