我正在处理Cocos2dx中某些对象的位置,但这个问题几乎适用于需要平稳启动和停止的所有情况。
这就是我要找的东西:
考虑到x = 0处的原点位置和x = 8的最终位置,我希望缓慢加速并从一开始就进一步加速,然后在它到达终点时放慢速度。是否有平滑算法?
答案 0 :(得分:1)
有很多算法可供选择。一个想法是建立线性插值:
x(t) = t * x0 + (1.0 - t) * x1;
如果您将t
的均匀间隔值从0.0提供到1.0,您将获得平滑的线性动画。
如果您想要慢启动和慢速结束,则可以将t = sin(theta)/2.0 + 1.0
用于theta
,从-pi / 2到pi / 2.
答案 1 :(得分:1)
二阶平滑路径在上半部分持续加速,然后在第二部分持续减速。
这意味着您从x=0
加速到x=4
。公式为x(t)=a*t*t
,因此您选择的加速度a
会直接影响所需的时间。如果将减速度设置为相同的值,则会在x=8
的两倍时间后到达。因此,第二部分的公式为x(t) = 16 - a*t*t
。中途时间点为t=sqrt(4/a)
。