2012-04-16 33 views
15

Na tej wspaniałej web page znalazłem listę algorytmów łagodzenia, które mogą dodać ładny wygląd do moich stron internetowych.Wyluzuj sześcienny - Argumenty funkcji Wyjaśnienie

Mimo to, znalazłem tam krótką wzmiankę o argumentach funkcji (patrz poniżej), algorytm nie zachowuje się tak, jak bym sobie tego życzył. Czy mogę prosić o wyjaśnienie, jakie wartości/zakresy powinny zostać włączone do argumentów wymienionych poniżej funkcji?

lista Argument:

  • t: aktualny czas - powinien tu być wartości 0 ... 1, Real numer bieżącej ramki?
  • B: Wartość początkowa - sądzę, początek współrzędnych X i Y przedmiotu przenoszone
  • c: Zmiana wartości - tutaj może być numerem 1 cały czas dla wszystkich ram?
  • d: czas trwania - całkowita liczba klatek?

Math.easeOutCubic = function (t, b, c, d) { t /= d; t--; return c*(t*t*t + 1) + b; };

Jeżeli wartości są stopniowo dodawane do ostatniej wartości uzyskanej z funkcji, czy powinny być one dodane do początkowej pozycji 0?

+1

Ten link szczegółowo wyjaśnia moje pytanie: http://upshots.org/actionscript/jsas-understanding-easing –

Odpowiedz

15

Masz rację, d jest na czas i t jest aktualny czas. Dlatego t powinno być od 0 do d.

c to całkowita zmiana, powinna być równa end value - start value.

  • Dla t = 0 mamy c*(-1 + 1) + b lub b
  • Dla t = d mamy c*(0 + 1) + b lub b + c

Funkcja będzie taki sam dla wszystkich klatek na sekundę, to zależy od Ciebie, jak często aktualizować pozycję i wywołać funkcję .

+0

+1, witam i dziękuję za odświeżenie. Spróbuję formuły z nowymi informacjami, kiedy wrócę do domu. ** Czy b (wartość początkowa) może być również liczbą ujemną? ** Powiedz, jeśli chcę przenieść obiekt z ekranu, co oznacza od -50 do 250 lat. Nie jestem pewien, czy formuła zadziała w ten sposób. –

+0

Tak. Tylko jeśli zmienisz 't' z 0 na pewną wartość ujemną, zadziała to w niewłaściwy sposób. – kirilloid

+0

Mogę potwierdzić, że po poprawnym zrozumieniu argumentów funkcji obiekty 2d zachowują się tak, jak powinny, z łatwością zaimplementowaną. Dlatego identyfikuję twoją odpowiedź jako * Przyjęta odpowiedź *. –

Powiązane problemy