值之间的平滑过渡(缓和in/out)
Smooth transition between values (ease in/out)
我可能会因为问这个问题而得到负面声誉,但我被困住了,需要帮助。
我需要在两个值之间做一个漂亮而流畅的缓动,结果显示在文本框中。例如,我的文本框显示“125”,必须在 2.5 秒内平滑增长到“25000”,并具有漂亮的二次加速和减速曲线。我不擅长 C#,我习惯了 "hack" 可以在网上找到的代码片段,并将它们构建在一起来做我需要的事情,但是为此,我找不到任何我拥有的东西能用到现在。
有没有人能给我一些说明、链接,或者更好的是一段有效的代码来做到这一点?
非常感谢你
文斯.
我发现最简单的方法是使用二次公式(如您所知)。有一些在线计算器可以为您提供一个使用三个点的抛物线方程,当取 (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
。
我可能会因为问这个问题而得到负面声誉,但我被困住了,需要帮助。 我需要在两个值之间做一个漂亮而流畅的缓动,结果显示在文本框中。例如,我的文本框显示“125”,必须在 2.5 秒内平滑增长到“25000”,并具有漂亮的二次加速和减速曲线。我不擅长 C#,我习惯了 "hack" 可以在网上找到的代码片段,并将它们构建在一起来做我需要的事情,但是为此,我找不到任何我拥有的东西能用到现在。 有没有人能给我一些说明、链接,或者更好的是一段有效的代码来做到这一点? 非常感谢你 文斯.
我发现最简单的方法是使用二次公式(如您所知)。有一些在线计算器可以为您提供一个使用三个点的抛物线方程,当取 (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
。