Decelerazione

enigmagame
Ciao a tutti :-D
Sono qui a farvi una domanda un poco particolare ma vediamo di provarci comunque.
Stò lavorando in C, openGL e GLUT. Ho una sfera che in base alla pressione di un tasto freccia muovo a sinistra/destra/alto/basso di una quantità pari a 1.0 lungo i rispettivi assi X,Y.
Ciò che ottengo è che alla pressione e rilascio istantaneo del tasto, la sferma mi si muove dalla posizione in quella nuova di quel passo, di scatto.
Vorrei ottenere un efferro più carino, ovvero di decelerazione, mi spiego... Vorrei che alla pressione del tasto la sfere si muovesse si di quel passo, ma non discatto, in modo via via più lento sino a fermarsi, come gli avessi dato un piccolo colpetto...
Mi è stato suggerito questo, lo riporto per intero:
Instead of letting xRef change immediately when the user presses a key, set up some target variable like xTarget that changes on a keypress. Then let xRef move gradually toward xTarget over time, using a quadratic or cubic function for interpolation. For instance, 3x^2 - 2x^3 gives a good accelerating/decelerating effect.

xRef sarà quella variabile presente nella funzione di traslazione della sfera...
Qualcuno sa spiegarmi meglio come fare? Ovvero come far avvicinare man mano il valore allo 0.0 ma non in modo lineare appunto?
Grazie, spero di essermi spiegato al limite chiedete :wink:

Risposte
enigmagame
Precisando, lasciate pure stare il fatto delle openGL delle GLUT ecc...
Vorrei solo più precisazioni su come decrementare quel valore da 1.0 a 0.0 in modo non lineare, ottenendo quindi un effetto di decelerazione!
Grazie :-D !

Malcolm1
Usando una variabile randomizzata e l'estremo superiore di randomizzazione decrescente?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.