在Lua中对一个值进行缓动处理

我该如何处理这个问题?我想在 x 时间内将一个值从一个值变换到另一个值。同时,考虑到在开始和结束时有一个“缓动”会很好。

我知道,我不应该问这个问题,但我自己尝试了一下,我卡住了。 请假设为了引起延迟,您需要调用函数 wait(time)。

原文链接 https://stackoverflow.com/questions/854436

点赞
stackoverflow用户6236
stackoverflow用户6236

你可以查看Tweener ActionScript库以获得灵感。

例如,你可以从这里获取所需的公式。

如果需要进一步帮助,请提出问题。

2009-05-13 07:46:51
stackoverflow用户28169
stackoverflow用户28169

将下面翻译成中文并且保留原本的 markdown 格式,

一个可能适用于您的简单方法是沿单位圆插值: 单位圆

为此,您只需在圆上评估点,这可以确保相当平滑的移动,并且还可以缓慢进入和退出。您可以通过更改其如何更改角度的速度来控制插值的速度。

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

角度 = -数学.π/ 2
开始 = 3.5
结束 = 6.9
半径 = (结束 - 开始)/ 2
值 = 开始 + 半径 + 半径 * math.sin(角度)

我不确定这是否是合法的Lua,没有测试过。如果没有,它可能很容易转换。

2009-05-13 12:56:25