2012-01-07 231 views
4

我目前正在編寫Flow Slider plugin的第二個版本,其中一個動畫選項是當滑塊以某個恆定的加速度加速到某個最大速度然後以恆定的減速度減速時。我有一個尋找合適的時機開始減速的問題。減速時機

如果時間是連續的,那就沒有問題,但是時間以不連續的間隔移動,因此當移動加速時有一些框架,並且(使用連續時間數學)不需要開始減速,但在下一幀中,你已經太遲而不能減速了。

例如,假設我們有每秒20幀的速率。我們需要移動500px,開始速度爲0px/frame,最大速度爲50px/frame,加速度爲3px/frame,減速度爲3px/frame。您可以在下面看到系統的前13幀。

| frame | speed | traveled | to go | deceleration distance | 
|----------------------------------------------------------- 
| 1 | 3 | 3  | 497 | 3     | 
| 2 | 6 | 9  | 491 | 9     | 
| 3 | 9 | 18  | 482 | 18     | 
| 4 | 12 | 30  | 470 | 30     | 
| 5 | 15 | 45  | 455 | 45     | 
| 6 | 18 | 63  | 437 | 63     | 
| 7 | 21 | 84  | 416 | 84     | 
| 8 | 24 | 108 | 392 | 108     | 
| 9 | 27 | 135 | 365 | 135     | 
| 10 | 30 | 165 | 335 | 165     | 
| 11 | 33 | 198 | 302 | 198     | 
| 12 | 36 | 234 | 266 | 234     | 
| 13 | 39 | 273 | 227 | 273     | 
|----------------------------------------------------------- 

現在,你可以看到,在0.6秒(第12幀)是太早減速,因爲234 減速距離小於距離去的266但到了下一個(13日)減速距離遠大於距離,如果我們開始從那裏減速,我們不會按時完成。

解決此問題的最佳策略是什麼?

+0

您的滑行文件很不錯* – goat 2012-01-08 00:06:44

回答

0

您可以嘗試在「太晚」的框架中調整減速速度,以適應更小的距離。