鼠标跟随器缓入/缓出

Posted

技术标签:

【中文标题】鼠标跟随器缓入/缓出【英文标题】:Mouse follower easing in/out 【发布时间】:2011-12-13 20:53:44 【问题描述】:

那里有很多鼠标跟随器教程。他们中的大多数都有一个简单的公式来缓和运动:

x += (tx - x) / interp;
y += (ty - y) / interp;

(tx = 目标位置,x = 实际位置,interp > 1)

这使得跟随者一开始走得很快,然后慢慢减速到目标位置。

如何更改公式,以便我可以定义自定义加速度、自定义减速度和最大速度之间的运动?一开始我会很高兴有一个额外的加速。

谢谢!

汉斯

【问题讨论】:

【参考方案1】:

加速度是速度随时间的变化。所以在一维空间中,要应用一个恒定的速度,你会这样做:

v += a * dt;
x += v * dt;

地点:

a 是加速度(常数) v 是速度 x 是 x 位置 dt 是时间步长,即更新之间的时间

你会为减速做类似的事情,除了a现在是负数。

要设置最大速度,您只需对v 进行条件检查,也许:

v = MIN(v_max, v);

其中v_max 是您允许的最大速度(一个常数)。

在 2D 中,您需要考虑行进方向:

x += v * cos(theta);
y += v * sin(theta);

我会留给你计算theta...

【讨论】:

以上是关于鼠标跟随器缓入/缓出的主要内容,如果未能解决你的问题,请参考以下文章

tiptoc不跟随鼠标

鼠标点击跟随,鼠标点击哪里,图片跟随到哪里;

输入法的鼠标跟随问题

three.js如何让场景中模型跟随鼠标旋转呀

如何跟随鼠标位置

如何让 ToolTip 跟随鼠标?