TP Animation – Interpolations
S.Gibet - T.Le Naour
Année 2011-2012
Ce TP va vous permettre de mettre en pratique la notion d’interpolation vue en cours.
Deux types de schéma d’interpolation vont être abordés dans ce TP : interpolation linéaire et
l’interpolation par splines cubiques.
1 Interpolation linéaire
Une interpolation linéaire permet de définir de manière implicite le passage d’une configuration
(par exemple une position) à une autre selon une base affine. Dans sa forme paramétrique
(l’interpolation est paramétrée par une valeur t∈[0 · · · 1]), l’interpolation entre deux points P1
et P2∈R3est donnée par :
P(t) = (1 −t)P1+tP2(1)
Interpolation entre 2 points Prenez la structure de programme donné pendant la séance de
TP. Implémentez une classe CInterLinear qui dispose comme données membres de 2 points
(structure de données que vous aurez implémentée au préalable). Vous implémenterez les méth-
odes suivantes :
•draw() qui dessine la trajectoire en vert et les deux extrémités en rouge,
•compute(...) qui prend une valeur double ten paramètre et renvoie un point de R3
Utilisez cette classe pour réaliser une animation d’un cube se déplaçant le long de votre
trajectoire1.
Trajectoire d’interpolation Définissez cette fois-ci une classe CTrajInterLinear héri-
tant de la classe Interpolator qui peut contenir plusieurs points associés à la trajectoire
d’interpolation. Associez à cette classe une méthode addPoint(...) qui permet d’ajouter un
point à la trajectoire. Tout comme la question précédente, implémentez une méthode draw() et
une méthode compute(...) qui renvoie un point de la trajectoire selon le paramètre tpassé en
paramètre (Attention ! lorsque t varie de 0à1, toute la trajectoire est parcourue !).
Testez votre classe pour un nombre de points >4. Observez les discontinuités de vitesse sur
les différents segments de la trajectoire.
Proposez une méthode permettant d’avoir une vitesse constante le long de la trajectoire.
2 Interpolation par splines de Bézier
On s’intéresse cette fois-ci à l’interpolation le long de trajectoire courbe. Pour celà on utilise les
splines de Bézier.
1Utilisez la méthode DrawCube() pour dessiner le cube.
1