是否有一个公式可以将 pow 函数中的 ease 变成 ease out?
Is there a formula to turn ease in pow function into ease out?
我有一个在 pow 函数中用作指数的控件。这以一种时尚的方式改变了价值观。有没有办法在数学上把它变成一个缓和?
我知道例如,立方体的缓动是:
pow(t, 3)
但 ease out cubic 是:
(pow((t - 1), 3)) + 1
并放出夸脱:
float t = t2 - 1
-(pow(t, 4) - 1)
所以公式变化很大,我需要一个通用的方法,这样我就可以使用 4.2、9.7 等值作为指数等
对于整数指数,这称为 Hermite 插值。
也可以将此任务解释为中国余数定理在多项式环中的应用
f(x) == 0 mod x^p
f(x) == 1 mod (x-1)^p
解的形式为
f(x) = a(x)*x^p+b(x)*(x-1)^p with deg a(x) < p, deg b(x) < p.
代入第二个方程得到
a(x)*x^p == 1 mod (x-1)^p <=> a(y+1)*(y+1)^p == 1 mod y^p
可以通过二项式级数求解,即直接幂级数运算,无需求解线性方程组,
a(y+1) = 1 - p*y + p*(p+1)/2*y^2 - p*(p+1)*(p+2)/2*y^3 +-... ...*y^(p-1)
对于非整数指数,你为什么要这样做?
另见"sigmoid functions".
更新
如果导数的连续性不是那么重要,那么对于任何正数 a
,您可以使用 c*x^a
表示 0<=x<=0.5
,使用 1-c*(1-x)^a
表示 0.5<=x<=1
.要缩小 x=0.5
处的差距,必须选择常数,使得
1 = 2*c*0.5^a <=> c = 2^(a-1)
可以为 0<=x<=1
实现为
y = (0.5>x) ? 0.5*pow(2*x,a) : 1-0.5*pow(2*(1-x), a);
我有一个在 pow 函数中用作指数的控件。这以一种时尚的方式改变了价值观。有没有办法在数学上把它变成一个缓和?
我知道例如,立方体的缓动是:
pow(t, 3)
但 ease out cubic 是:
(pow((t - 1), 3)) + 1
并放出夸脱:
float t = t2 - 1
-(pow(t, 4) - 1)
所以公式变化很大,我需要一个通用的方法,这样我就可以使用 4.2、9.7 等值作为指数等
对于整数指数,这称为 Hermite 插值。
也可以将此任务解释为中国余数定理在多项式环中的应用
f(x) == 0 mod x^p
f(x) == 1 mod (x-1)^p
解的形式为
f(x) = a(x)*x^p+b(x)*(x-1)^p with deg a(x) < p, deg b(x) < p.
代入第二个方程得到
a(x)*x^p == 1 mod (x-1)^p <=> a(y+1)*(y+1)^p == 1 mod y^p
可以通过二项式级数求解,即直接幂级数运算,无需求解线性方程组,
a(y+1) = 1 - p*y + p*(p+1)/2*y^2 - p*(p+1)*(p+2)/2*y^3 +-... ...*y^(p-1)
对于非整数指数,你为什么要这样做?
另见"sigmoid functions".
更新
如果导数的连续性不是那么重要,那么对于任何正数 a
,您可以使用 c*x^a
表示 0<=x<=0.5
,使用 1-c*(1-x)^a
表示 0.5<=x<=1
.要缩小 x=0.5
处的差距,必须选择常数,使得
1 = 2*c*0.5^a <=> c = 2^(a-1)
可以为 0<=x<=1
实现为
y = (0.5>x) ? 0.5*pow(2*x,a) : 1-0.5*pow(2*(1-x), a);