只有1维,你想要到达X位置并停在那里。你有最大加速度A你可以自己动手;每一帧你选择加速的方向。
因此,如果您有速度V,并希望尽可能快地停在X位置,您自己应用了多少最大加速度A?
(如果你很远,你可以使用最大加速度,但是当你靠近时,你会开始制动。所以根据你的速度和剩余距离,你需要决定什么时候开始制动。)
控制方程是x = v t + 0.5 a t ^ 2,其中x是距离,v是速度,t是时间,a是相容单位的加速度。
没有其他限制,为了最大限度地缩短您的行程时间,您将始终应用最大加速度:沿着目标方向加速直到您到达中途,然后沿着原点方向加速直至停止。
如果你有一个最大速度,加速直到你达到最大速度,这将发生在距离原点一定距离X处。当你离目标距离为X时,加速回到原点。
刚刚回答了这个问题的更高级版本,我最近解决了。你在x_0有v_0,想要到达位置X,到达那里时有速度V.每个小时间步长应用加速度,例如,每秒60次。
因此,使用运动方程x = v t + 0.5 a t ^ 2,在施加正/负加速度的情况下求解t,以查看无论最终速度如何都能达到x的速度。
还计算通过应用正或负加速度达到V所需的时间。无论哪个t最高,都应用正或负加速度。
这会使对象平滑地跟随诸如sin(x)之类的对象,如果它们被抛弃,它们将优雅地滑回到它中。