D'accord, je comprends. Mais, si par exemple, je dois réaliser une animation d'un squelette via ce système, avec des points clés pour la rotation, la taille, et la position. Imaginons que j'ai cette animation :
Point clé 1
| Point clé 2
|
Rotation 0 Taille 1 Translation (0,0)
| Rotation 90° Taille 2 Translation (100,-50)
|
En gros, le truc se déplace en diagonale, tourne sur un angle droit, et sa taille se multiplie par 2.
Sachant qu'à chaque instant du déroulement de l'animation, entre ces deux frames, je vais devoir calculer des valeurs intermédiaires, et les appliquer. Pour chaque application d'une transformation intermédiaire, je peux choisir l'ordre pour que ça ne fasse pas ce que j'ai montré dans mon premier post. Mais, en y réflechissant, le sf::Transform du noeud va subir, par exemple, des opérations comme ceci :
Translation
Rotation
Taille
Translation
Rotation
Taille
Translation
Rotation
Taille
[...]
Du coup ça revient au même en fait, si j'applique chaque petit bout de l'animation, j'ai une rotation qui se fait avant une échelle au début, mais après la dite échelle, j'ai une rotation qui se fait, du coup c'est comme si l'ordre s'échangeait à chaque transformation intermédiaire, et donc j'ai mon problème qui revient.
Du coup, est-ce que je dois procéder comme ça, c'est-à-dire découper une animation en plein de petit bout ? Par exemple pour la rotation de 90°, en admettant qu'elle s'étale sur 90ms, on va dire que j'ai 90 position intermédiaires, du coup, à chacune de ces millisecondes, j'applique une rotation de 1°, ou alors je recalcule selon le temps écoulé la rotation en cours et je l'applique au sf::Transform de base à chaque fois ?
Désolé pour ces pattés, mais j'ai du mal à expliquer