我正在阅读通过示例编程游戏 AI 的书,他提供了导致实体减速以便它优雅地到达目标的转向行为的代码。在计算距离之后,从目标到源的距离然后他(基本上)这样做
double speed = dist/deceleration;
我只是不明白这是从哪里来的,我只是错过了一些非常明显的东西吗?它没有在书中列为已知错误,所以我猜它是正确的。
我正在阅读通过示例编程游戏 AI 的书,他提供了导致实体减速以便它优雅地到达目标的转向行为的代码。在计算距离之后,从目标到源的距离然后他(基本上)这样做
double speed = dist/deceleration;
我只是不明白这是从哪里来的,我只是错过了一些非常明显的东西吗?它没有在书中列为已知错误,所以我猜它是正确的。
如果这有一些物理上的真实性,那么这些单位在任何一方都会匹配。
据我了解,这类似于芝诺的悖论,您试图到达某物,但您永远无法到达那里,因为您总是只走n
了剩余距离的四分之一。
认为
deceleration
= 5distance
= 1000 米有了这些初始条件,speed
将设置为200
每秒米。因为模拟以一秒的间隔进行,所以我们将精确地行进200
几米(即剩余距离的五分之一),并最终到达距离800
目标几米的距离。新速度确定为:160
米每秒
以下是前 30 秒内发生的情况:
最后 30 秒:
最后 10 秒:
观察
如您所见,您几乎很快就到达了那里,但需要很长时间才能靠近。
WolframAlpha 绘制的图
也许您的计算中缺少某些东西。对于恒定的加速(或减速),忽略初始条件,速度为
v = a * t
距离是
d = a * t^2 / 2
如果你在两个方程中消除 t 你得到
v = a * sqrt(2 * d / a)