Bonjour,
Mon problème
J'ai un projet où mon client souhaiterait avoir un effet de drag comme sur iphone
je m'explique
je drag (vers le droite ou vers la gauche) et quand je relâche la le bouton, dépendamment d'une vitesse X l'élément arrête de bouger avec une vitesse décroissante.
voici que que j'ai de fait jusqu'à présent:
* je peux dragger sur l'axe des x
* durant mon événement je déclare un intervalle qui a chaque mili seconde, incrémente un array avec la position de la sourie.
en travaillant sur cette array, je dois à présent trouver la façon pour qu'une fois le bouton relâché, l'élément continue sa trajectoire a une vitesse décroissante x jusqu'a un arrêt complet.
Variable que je peux tirer de mon array
note : durant le mouvement, ma souris pourra aller de la droite a la gauche et vice verse, je pense mon calcul je devrai travailler sur le dernier intervalle en direction continue, appelons le ,dernier intervalle
1-Orientation final de l'élément
En regardant les 2 dernières valeurs de mon array je peux déterminer si le mouvement allait vers la droite ou vers la gauche
2-Vitesse
en regardant la première et dernière position de mon dernier intervalle et en le croisant avec l'écart de laps de temps entre les 2, j'imagine pouvoir en tirer une vitesse.
note: Cependant la complexité arrive du fait que si je vais vraiment tranquillement vers la droite et d'un coup sec j'augmente ma vitesse et que je lâche, bien mon calcul de simplement calculer point a, point b et laps de temps sera biaisé
3-distance
bien en regardant la distance au début et la fin de mon dernier intervalle
-------------------------------------------------------
-------------------------------------------------------
donc on final j'ai ses variable,
* orientation
* distance
* vitesse (je pense être capable de lavoir)
* poids (on peux le rentrer manuellement)
quel est le calcul pour déterminer sa position finale après mouvement ainsi que le easing de vitesse qu'il aura durant cette transition?
merci
Partager