值之间平滑过渡(轻松进/出)

时间:2018-02-05 14:14:13

标签: c# transition smoothing easing quadratic

我可能会因为提出这个问题而获得负面声誉,但我被困住并需要帮助。 我需要在两个值之间做一个漂亮而平滑的缓动,结果显示在文本框中。例如,我的文本框显示“125”,并且必须在2.5秒内平滑地增长到“25000”,具有漂亮的二次加速和减速曲线。我不擅长C#而且我习惯于“破解”我可以在网上找到的代码片段并将它们组合起来做我需要的东西但是,为此,我找不到任何我能够做到的东西到目前为止使用。 有没有人能够给我指示,链接,或者甚至更好的代码来执行此操作? 非常感谢你  文斯。

1 个答案:

答案 0 :(得分:0)

我发现最简单的方法是使用二次公式(正如您已经想到的那样)。有一些在线计算器可以使用三个点给你一个抛物线方程,当取(0,125),(2.5,25000)和(5,125)时,我们得到一个y = -3980x^2 + 19900x + 125方程。转换为C#,这给了我们:

var foo = -3980 * Math.Power(bar, 2) + 19900 * bar + 125;

之后,我们可以使用for循环和较短的sleep时间从bar = 0顺利过渡到bar = 2.5