如何計算此曲線中的y
? t
是變量。當然,原產地爲(0|0)
。以編程方式計算的曲線?
- 在
t=0
,t=0,5
和t=1
切線必須是完全水平(傾斜= 0) - 只有基本的數學運算符可用(爪哇/ ActionScript 3的)
我在Actionscript 3中每幀必須計算幾百次。因此計算需要良好的性能。現在我實際上是失敗的計算正確性(我不是數學家)。
如何計算此曲線中的y
? t
是變量。當然,原產地爲(0|0)
。以編程方式計算的曲線?
t=0
,t=0,5
和t=1
切線必須是完全水平(傾斜= 0)我在Actionscript 3中每幀必須計算幾百次。因此計算需要良好的性能。現在我實際上是失敗的計算正確性(我不是數學家)。
不確定的表現,但
-0.5 * cos(x * 2pi) + 0.5
AS3:
y = -0.5 * Math.cos(x * 2 * Math.PI) + 0.5;
似乎是你正在尋找的曲線。
您可以查看或編輯在這裏曲線: wolfram alfa curve
由比昂鬆(-0.5*cos(x) + 0.5
)建議的功能看起來不錯。
提高性能的一個想法是,您在應用程序的開始時在不同的時間創建該函數的值表。
如果您使用修復時間步,那麼表就是您所需要的。如果你有不同的時間步長,那麼你可以在你計算的兩次最接近的時間之間進行線性插值。
aka查找表。是的,謝謝。 – n4pgamer
y(t) = 16 * t * t * (t - 1) * (t - 1)
我估計一個滿足您的要求
我想我自己的路,我想出了一個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
出於興趣。你說dmuir是不正確的:http://tinyurl.com/pxrth86你爲什麼更正確?你的曲線是相同的:http://tinyurl.com/oxu7z2v –
不知道它爲什麼看起來正確的wolframalpha,但它沒有預期的行爲作爲其他功能。在我的AS-3應用程序中,它被轉換成動畫。 – n4pgamer
+1不錯的答案,一個小東西:COS()在AS3是Math.cos(),它在參數 –
需要弧度感謝san.chez,我添加了AS3信息 –