2013-07-09 127 views
1

如何計算此曲線中的yt是變量。當然,原產地爲(0|0)以編程方式計算的曲線?

  • t=0t=0,5t=1切線必須是完全水平(傾斜= 0)
  • 只有基本的數學運算符可用(爪哇/ ActionScript 3的)

enter image description here

我在Actionscript 3中每幀必須計算幾百次。因此計算需要良好的性能。現在我實際上是失敗的計算正確性(我不是數學家)。

回答

4

不確定的表現,但

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

AS3:

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

似乎是你正在尋找的曲線。

enter image description here

您可以查看或編輯在這裏曲線: wolfram alfa curve

+0

+1不錯的答案,一個小東西:COS()在AS3是Math.cos(),它在參數 –

+0

需要弧度感謝san.chez,我添加了AS3信息 –

4

由比昂鬆(-0.5*cos(x) + 0.5)建議的功能看起來不錯。

提高性能的一個想法是,您在應用程序的開始時在不同的時間創建該函數的值表。

如果您使用修復時間步,那麼表就是您所需要的。如果你有不同的時間步長,那麼你可以在你計算的兩次最接近的時間之間進行線性插值。

+0

aka查找表。是的,謝謝。 – n4pgamer

2
y(t) = 16 * t * t * (t - 1) * (t - 1) 

我估計一個滿足您的要求

0

我想我自己的路,我想出了一個polynomial

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 
+2

出於興趣。你說dmuir是不正確的:http://tinyurl.com/pxrth86你爲什麼更正確?你的曲線是相同的:http://tinyurl.com/oxu7z2v –

+0

不知道它爲什麼看起來正確的wolframalpha,但它沒有預期的行爲作爲其他功能。在我的AS-3應用程序中,它被轉換成動畫。 – n4pgamer