有没有一个公式可以让战斗功能变得轻松自如?

时间:2015-04-18 13:20:38

标签: math interpolation algebra

我有一个控制器,用作pow功能的指数。这样可以轻松地改变价值观。有没有办法把它变成数学上的缓和?

我知道例如,立方体的易用性是:

pow(t, 3)

但缓和立方是:

(pow((t - 1), 3)) + 1

并缓和夸脱:

   float t = t2 - 1
   -(pow(t, 4) - 1)

所以公式改变了很多,我需要一个通用的方法,所以我可以使用像4.2,9.7这样的值作为指数等。

1 个答案:

答案 0 :(得分:3)

对于整数指数,这称为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)

对于非整数指数,你为什么要这样做?


同时查找&#34; sigmoid功能&#34;。


<强>更新

如果衍生品的连续性不是一个问题,那么对于任何积极的a,您可以c*x^a使用0<=x<=0.51-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);