我正在阅读“通过示例编程游戏AI”这本书,他给出了代码 转向行为,导致实体减速以使其到达 优雅地对准目标。计算dist后,距目标的距离为 然后他(基本上)做这个来源
double speed = dist/deceleration;
我无法理解它来自哪里,我只是遗漏了一些东西 真的很明显?它没有被列为书中的已知错误,所以我猜它 是对的。
答案 0 :(得分:2)
如果对此有一些实际的真相,那么这两个单位都会匹配。
根据我的理解,这类似于Zeno的悖论,你试图达到某种目的,但是你永远不会到达那里,因为你总是只剩下剩余距离的n
个。{/ p>
假设
deceleration
= 5 distance
= 1000米根据这些初始条件,speed
将设置为每秒200
米。因为模拟以一秒的间隔进行,所以我们将精确地行进200
米(即剩余距离的五分之一),并且最终距目标800
米的距离。新速度确定为:160
米/秒
以下是前30秒内发生的事情:
最后30秒:
最后10秒:
观察
正如你所看到的,你很快就会到达那里,但需要很长时间才能接近。
WolframAlpha的绘图
答案 1 :(得分:0)
也许你的计算中缺少一些东西。对于持续的加速(或减速),并忽略初始的谴责,速度是
v = a * t
,距离是
d = a * t^2 / 2
如果你在两个方程式中消除t,那么
v = a * sqrt(2 * d / a)