我正在创建一个电脑游戏,其中有一辆电脑控制的汽车需要沿直线行驶(从而使这个问题有效地成为一维问题)并以 0 速度到达目的地并停下来。这辆车每秒钟都在“思考”,并决定是否(以及多少)加速或减速。
总而言之,我希望汽车尽可能地加速,然后尽可能快地停下来。
以下是汽车必须遵守的变量:
- RemainingDistance
= 我们当前到目的地的剩余距离(以米为单位)。
- Velocity
= 我们当前朝向目的地的速度,以米/秒为单位。
- MaxVelocity
= 汽车可以达到的最大速度。
- Acceleration
= 每秒速度的变化。汽车可以每秒将其加速度更改为 [0, Acceleration] 范围内的任何数字。
- Deceleration
= 每秒速度的变化。汽车可以每秒将其减速度更改为 [0, Deceleration] 范围内的任何数字。
所以为了尽可能清楚,这是每秒运行一次以更新汽车模拟的数学:
Acceleration
= 计算机选择的 [ Deceleration
, Acceleration
] 之间的某个数量
Velocity
= Velocity
+Acceleration
RemainingDistance
= RemainingDistance
-Velocity
所以我的问题是:每次汽车“思考”时,它应该使用什么公式来确定理想值,Acceleration
以便在尽可能短的时间内到达目的地(最终速度为 0)?
(如果汽车的初始速度太高,并且在到达目的地时不能足够快地减速以达到 0 速度,那么它应该尽可能靠近目的地停下来。)
请让我知道,如果你有任何问题。