2012-01-07 226 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

您可以尝试在“太晚”的框架中调整减速速度,以适应更小的距离。