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=eiα=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 α.