inconnu : bah, si t´es pas familier, tu dois pas avoir de code sous la main pour gérer des matrices, donc pas la peine de te compliquer la tâche pour rien ( surtout pour une rotation...)
le point important dans ce que je disais c´est d´appliquer la transformation inverse à l´image d´arrivée plutôt que la transformation direct à l´image de départ.
X = ( x y)^t ( vecteur colonne)
X´ = ( x´ y´)^t
transfo. direct : X´ = R x X
ça revient à dire, je prends chaque pixel de mon image, je le rotate. Mais avec les erreur d´arrondi ( les coordonnées de pixels étant entieres), ça va te laisser des trous dans ton image. On est aussi obligé de clipper sans quoi on risque de tracer en dehors de l´écran
transfo.inverse : R^-1 x X´ = X
là on fait le contraire : pour chaque pixel de l´image d´arrivée, on regarde son antécédent dans l´image de départ. Du coup, plus possible qu´il y ait de trou. Et comme on ne parcours que la surface de l´image finale, on n´a pas a clipper.
Ensuite, tu verras qu´en faisant ça, la rotation est plutot " moche" et pixelisée... L´idée est dont d´effectuer qq opérations en plus.
quant tu fais :
R^-1 x X´ tu obtiens X~ de coordonnées flottantes, qu´on arrondit pour trouver X entier, pixel " antécédent". Ben en filtrant en bilinéaire, tu conserves X~ et tu fais une relation barycentrique faisant intervenir les 4 pixels voisins pour determiner la couleur du pixel rotaté. On peut aussi filtrer sur un voisinnage plus grand, à coup de spline et de gaussienne, ou alors supersampler l´image de départ, y´a plein de moyens différents.
Commence par la rotation, on reviendra sur le filtrage plus tard qi t´as des soucis.
Un exemple de ce que tu veux faire ( C/OpenPTC) :
http://netabarons.chez.tiscali.fr/downloads/oldschool.ace
( le rotozoom, ´tention c´est du fixed point)