Avec un amis nous nous sommes mis en tête d'écrire un petit programme informatique qui déplace un rectangle à l'écran.
Pour cela nous avons utilisé une méthode simple :
- Notre rectangle à des coordonnées de départ en x1,y1, une largeur w1 et une hauteur h1
- Nous lui avons donné des coordonnées d'arrivé en x2,y2,w2 et h2
Pour déplacer notre rectangle, on fait simplement varier un Facteur entre 0 et 1 pour calculer les étapes intermédiaires, Facteur n'étant qu'un pourcentage du déplacement/agrandissement :
- x = (x2-x1)*Facteur+x1
- y = (y2-y1)*Facteur+y1
- w = (w2-w1)*Facteur+w1
- h = (h2-h1)*Facteur+h1
Jusque là c'est très simple. Là où ça se complique et où franchement cela dépasse mes compétences en mathématique, c'est que nous avons constaté qu'en faisant varier Facteur nous avions un déplacement très linéaire.
Et on s'est donc mis en tête de trouver une solution pour avoir une accélération en douceur puis sur la fin, un décélération en douceur aussi.
Après quelques recherches, la bonne méthode semblerait être Bezier ou Splin degré 3 ou B-Splin ... enfin bref, des choses malheureusement bien trop compliquées pour nous.
Auriez vous une formule (facilement programmable) qui pourrait nous permettre d'atteindre cet objectif ? Avec pourquoi pas une variable qu'on pourrait faire varier pour augmenter ou réduire l'effet de vitesse.
En espérant que mon problème vous motives ...
Merci d'avance