3Fermer5
Kevin KoflerLe 15/11/2012 à 14:37
vince (./1) :
Le truc c'est : comment avoir une équation "propre" qui pour un point d'arrivée, (x1,y1) nous dise quel (x2,y2) du sprite d'origine il faut utiliser avec un angle alpha et un centre de rotation (x3,y3) ?

Un rotozoom de facteur z est une simple application linéaire complexe x1+iy1=f(x2+iy2)=z(x2+iy2). Pour une rotation sans zoom, tu as z=e=cos(α)+i sin(α). La fonction qui t'intéresse ici est x2+iy2=f-1(x1+iy1)=z-1(x1+iy1)=e-iα(x1+iy1)=(cos(-α)+i sin(-α))(x1+iy1)=(cos(α)-i sin(α))(x1+iy1)=x1cos(α)+y1sin(α)+i(y1cos(α)-x1sin(α)).
Donc ta formule est (x2, y2)=f-1(x1, y1)=(x1cos(α)+y1sin(α), y1cos(α)-x1sin(α)).

[EDIT: Le calcul présuppose une rotation autour de l'origine, cf. ./10 pour le centre de rotation.]
La question subsidaire : peut on faire de la rotation performante (pas forcément 100% précise) qui n'utilise pas de fonctions trigo ?

Ça revient essentiellement à approximer le sinus et le cosinus de ton angle α.