1

How can I calculate y in this curve ? t is the variable. Origin is (0|0) of course.

  • the tangents at t=0, t=0,5 and t=1 must be perfectly horizontal (incline = 0)
  • only basic mathematical operators are available (Java / Actionscript 3)

enter image description here

I have to calculate this a few hundred times each frame in Actionscript 3. So calculation needs good performance. Right now I'm actually failing at correctness of calculation (I'm not a mathematician).

4

4 回答 4

4

bjornson ( -0.5*cos(x) + 0.5) 建议的函数看起来不错。

提高性能的一个想法是,您在应用程序开始时创建一个该函数在不同时间的值的表。

如果您使用修复时间步长,那么该表就是您所需要的。如果您有可变的时间步长,那么您可以在最接近您计算的时间的两个时间之间进行线性插值。

于 2013-07-09T13:11:59.840 回答
4

不确定性能,但是

-0.5 * cos(x * 2pi) + 0.5

AS3:

y = -0.5 * Math.cos(x * 2 * Math.PI) + 0.5;

似乎是您正在寻找的曲线。

在此处输入图像描述

您可以在此处查看或编辑曲线: wolfram alfa curve

于 2013-07-09T13:00:56.810 回答
2
y(t) = 16 * t * t * (t - 1) * (t - 1)

我认为一个满足你的要求

于 2013-07-09T13:21:30.817 回答
0

我尝试了自己的方式,并想出了一个多项式

y = 16 * (t - 0.5)^4 - 8 * (t - 0.5)^2 + 1
y = 16 * Math.pow((t - 0.5), 4) - 8 * Math.pow((t - 0.5), 2) + 1;
// forgot to shift the curve 0.5 to the right, corrected
于 2013-07-09T13:28:35.597 回答