Время замедления - PullRequest
       18

Время замедления

4 голосов
/ 08 января 2012

В настоящее время я пишу вторую версию плагина Flow Slider , и один из вариантов анимации - это когда слайдер ускоряется с некоторым постоянным ускорением до некоторой максимальной скорости, а затем замедляется с постоянным замедлением.У меня проблема с поиском подходящего времени для запуска замедления .

Если бы время было непрерывным, не было бы никаких проблем, но время движется с дискретными интервалами, и в результате естьнекоторые кадры, когда движение ускоряется и (с использованием математики с непрерывным временем) вам не нужно начинать замедление, но в следующем кадре вы уже слишком поздно, чтобы замедляться.

Например, допустим, у нас есть кадрскорость 20 в секунду.Нам нужно переместить 500px, начальная скорость 0px / кадр, максимальная скорость 50px / кадр, ускорение 3px / кадр, замедление 3px / кадр.Ниже вы можете видеть первые 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-м) кадре расстояние замедления намного больше, чем расстояние до , иесли мы начнем замедляться оттуда, мы не закончим вовремя.

Какова будет лучшая стратегия для решения этой проблемы?

1 Ответ

0 голосов
/ 08 января 2012

Вы можете попытаться отрегулировать скорость замедления в кадре, где «слишком поздно», чтобы он поместился на меньшем расстоянии.

...