我正在尝试为使用二次曲线的游戏设计一个灵活的衰减计分系统。我可能会蛮力通过它,但是想知道是否有人可以帮助我提出一些灵活的建议,或者也许已经有现成的解决方案了!
但是基本上我需要具有以下能力来生成a,b和c的值:
y = ax^2 + bx + c
从3点(我知道落在一条有效的二次曲线上,但是基于可配置的设置和对事件做出反应的最大时间是动态的),例如:(-1100,0),(200,1),(1500 ,0)。
因此,我可以然后将x的值插入以生成Y的值,这将确定我给用户的分数。
如果我能摆脱一个固定的二次方程式,我会但评分是根据用户对特定事件(X轴)的反应时间而定,y轴点将始终在0到1之间,其中0为最低分,最高分1!
让我知道是否需要更多信息!
您可以使用拉格朗日多项式插值,曲线由]给出>
y(x) = y_1 * (x-x_2)*(x-x_3)/((x_1-x_2)*(x_1-x_3)) + y_2 * (x-x_1)*(x-x_3)/((x_2-x_1)*(x_2-x_3)) + y_3 * (x-x_1)*(x-x_2)/((x_3-x_1)*(x_3-x_2))
如果收集系数,则可获得
a = y_1/((x_1-x_2)*(x_1-x_3)) + y_2/((x_2-x_1)*(x_2-x_3)) + y_3/((x_3-x_1)*(x_3-x_2))
b = -y_1*(x_2+x_3)/((x_1-x_2)*(x_1-x_3))
-y_2*(x_1+x_3)/((x_2-x_1)*(x_2-x_3))
-y_3*(x_1+x_2)/((x_3-x_1)*(x_3-x_2))
c = y_1*x_2*x_3/((x_1-x_2)*(x_1-x_3))
+ y_2*x_1*x_3/((x_2-x_1)*(x_2-x_3))
+ y_3*x_1*x_2/((x_3-x_1)*(x_3-x_2))
您可以将其表达为矩阵形式:aX = b