有关Robert的缓动函数的算法的讨论。

      闪了一下 2004-9-30 21:35

Eric 05:10:20
我想向高手请教一个缓动公式的问题(FlashMX版)

对于一次线性变形函数(位置随时间的变化)我可以理解,如下:
Math.linearTween=function(t,b,c,d){
return c*t/d+b;
};
在此函数中的各参数代表的含义是:
t代表时间,b代表起始位置,c是位置的改变,d是变形的持续时间
函数返回相应的位置

在Robert penner的二次缓动公式中有一个二次缓出函数的定义:
Math.easeOutQuad=function(t,b,c,d){
return -c*(t/=d)*(t-2)+b;
};
但我无法理解上面的二次公式是如何导出的?
皮皮狼 21:18:10
等价与
c*x+b
x必定是0-1之间的数。
t在1-b之间变化。当然是x=t/b时候为一次线性。

这里x是:
t/=d;//首先计算
然后
t*(t-2)得到一个负数。并且在0-1之间。
所以前面-c*



皮皮狼 21:18:34
不知道这样说你明白吗??
Eric 05:53:16
能再详细点吗?比如为何那个公式中的被减的常数为2呢?
皮皮狼 21:21:54
一个0-1之间的数。t*t得到的只是抛物线的一半。
皮皮狼 21:23:27
-2以后得到了-1至0之间的数。值域改变了。
Eric 05:58:36
有否用到曲线的平移呢?
皮皮狼 21:29:50
大约是平易乐。但是更重要的是曲线的凹凸性质改变了啊。。
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}