2012-04-16 11 views
15

Su questo ottimo web page ho trovato un elenco di algoritmi di andamento che possono aggiungere un piacevole impatto visivo alle mie pagine web.Espanso cubico - Argomenti funzione Spiegazione

Nonostante, ho trovato brevemente menzionato gli argomenti della funzione (vedi sotto), l'algoritmo non si comporta come vorrei. Posso gentilmente chiedere spiegazioni su quali valori/intervalli devono essere inseriti negli argomenti della funzione sotto menzionata?

Lista argomento:

  • t: ora corrente - dovrebbe essere qui valori 0 ... 1, o il numero reale del frame corrente?
  • b: valore iniziale - presumo, un inizio X o Y coordinate dell'oggetto che viene spostato
  • c: variazione di valore - possono qui essere il numero 1 per tutto il tempo per tutti i fotogrammi?
  • d: durata - il numero di fotogrammi complessivamente?

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

Qualora i valori essere gradualmente aggiunti all'ultimo valore ottenuto dalla funzione, o devono essere aggiunti alla posizione iniziale 0?

+1

Questo collegamento spiega la mia domanda in modo molto dettagliato: http://upshots.org/actionscript/jsas-understanding-easing –

risposta

15

Hai ragione, d è per la durata e t è l'ora corrente. Pertanto, t dovrebbe essere da 0 a d.

c è una modifica totale, deve essere uguale a end value - start value.

  • Per t = 0 abbiamo c*(-1 + 1) + b o b
  • Per t = d abbiamo c*(0 + 1) + b o b + c

Funzione sarebbe lo stesso per qualsiasi fps, tocca a voi come aggiornare di frequente la posizione e chiama la funzione .

+0

+1, ciao e grazie per la tua domanda. Proverò la formula con nuove informazioni quando torno a casa. ** Può b (valore iniziale) essere un numero negativo anche? ** Dire, se desidero spostare l'oggetto dallo schermo, che significa da -50 a 250y. Non sono sicuro che la formula funzionerà anche in questo modo. –

+0

Sì. Solo se cambierai 't' da 0 a qualche valore negativo, non funzionerà come previsto. – kirilloid

+0

Posso confermare che, dopo aver correttamente compreso gli argomenti della funzione, gli oggetti 2D si comportano come dovrebbero essere implementati con facilità. Pertanto sto identificando la tua risposta come * Risposta accettata *. –

Problemi correlati