在 Lua 中补间一个值

1 variables lua interpolation loops

这件事我该怎么办?我想在 x 时间内将一个值从一个值补间为另一个值。同时还要考虑到在开始和结束时有一个“轻松”的感觉会很好。

我知道,我真的不应该问,但我自己试过了,但我被困住了。请假设要引起延迟,您需要调用函数 wait(time)。

unw*_*ind 5

一种可能适合您的简单方法是沿着单位圆进行插值: 单位圆

为此,您只需评估沿圆的点,这可确保相当平滑的移动以及缓入和缓出。您可以通过更改改变角度的速度来控制插值的速度。

假设您正在进行一维插值(即简单的标量插值,例如从 3.5 到 6.9 或其他),使用从 -π/2 到 π/2 的 Y 值可能会很方便。这些由正弦函数给出,您所需要做的就是应用适当的缩放:

angle = -math.pi / 2
start = 3.5
end = 6.9
radius = (end - start) / 2
value = start + radius + radius * math.sin(angle)
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是合法的Lua,没有测试它100%。如果没有,转换可能很简单。