algorithm - 如何解决该动画中当前的不透明度问题?

标签 algorithm function math lua

我正在尝试在 Lua 中做一个简单的淡入/淡出动画。

我觉得这些变量应该足以解决我想在每一帧设置框的 alpha/不透明度,但我在淡出方面遇到了很多麻烦,因为 alpha = targetAlpha *乘以目标 alpha 0 时,animationPos 始终返回 0。

所有这些变量都是 0-1 之间的十进制值,表示 alpha 或完成时间百分比。

  1. targetAlpha - 动画结束时的 Alpha 值。
  2. initialAlpha - 动画初始化时框开始的 Alpha。
  3. animationPos - 动画的当前位置(%time 完成)
  4. currentAlpha - 框的当前 alpha。

也许我今天实在是太兴奋了,但我一直在尝试这些变量的十亿种组合来找到有效的方程式,但没有运气。

感谢任何帮助!

最佳答案

你想要的是 linear interpolation ,它采用两个值 ab,以及一个介于 0 和 1 之间的插值 f

function lerp(a, b, f)
    return a * (1 - f) + b * f
end

现在您可以使用当前的动画进度在初始和目标 alpha 之间进行插值:

alpha = lerp(initialAlpha, targetAlpha, animationPos)

关于algorithm - 如何解决该动画中当前的不透明度问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69169522/

相关文章:

algorithm - 我寻找圆线碰撞解决方案的功能可能有什么问题?

c++ - 如何在此添加此条件并使其达到最佳状态?

java - 计算存储在数组中的所有相邻节点列表

angularjs - 在 ng-click 中使用 AngularJS 的函数的数据绑定(bind)参数

python - 确定可能组合的数量

arrays - 计算列表中 k 个最大数字之和的有效方法?

c++ - 尝试反转除特殊字符外的字符串时出错

c - 如何通过在 C 中传递多个参数的指针来调用函数?

c# - 二叉树到数学表达式

math - float 学运算是否被破坏?