【问题标题】:How to calculate this constant in various easing functions?如何在各种缓动函数中计算这个常数?
【发布时间】:2018-03-19 08:52:47
【问题描述】:

基于这个blog post(日语,所以我用谷歌翻译来阅读)和其他各种来源,似乎魔法常数1.70158等于10%的“反弹”。该常量出现在各种缓动函数中,例如 inBack、outBack、...

这个常数是怎么得出的,如何计算?

【问题讨论】:

  • 你刚刚发布的那个链接一步一步地解释了作者是如何得到这个数字的,你能澄清一下你不明白的地方吗?我不确定这真的是一个编程问题。
  • 帖子最后是1.7015401988668,所以我不确定它是否准确。
  • 这篇文章也提到了这一点。
  • 那么我应该用代码中的新常量替换 1.70158 吗?
  • 您实际上认为这会产生多大的影响?!我想这样的小调整在实践中是难以察觉的。是否真的存在您要解决的问题

标签: constants easing easing-functions


【解决方案1】:

这有点晚了,但这里有一个计算它的函数:

function calc(p)
    p = p/10
    local m = (27*40^2*-27*p+2*(-27*p)^3-9*40*-27*p*-54*p)/(54*40^3)
    local r = (m^2+((3*40*-54*p-(-27*p)^2)/(9*40^2))^3)^0.5
    local s = (-m+r)^(1/3)+(-m-r)^(1/3)-(-27*p)/(3*40)
    return s, 1-(s+3)/(3*s+3)
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2021-10-20
    相关资源
    最近更新 更多