Bonjour, Je vous propose un nouvel élément à utiliser : Rotation d'une surface
Code source montrant comment faire des rotations d'une surface. Ce code propose deux fonctions qui calculent la rotation d'une surface. Une fonction recalculant la taille de la surface pour ne pas perdre d'information. Les deux fonctions allouent une nouvelle surface, il faudra s'occuper de la libération de mémoire. Voici les prototypes des deux fonctions :
//Ne recalcule pas la taille, les bords seront perdus
SDL_Surface* SDL_RotationCentral(SDL_Surface* origine, float angle);
//Calcule la taille de la surface, les bords ne seront pas perdus
SDL_Surface* SDL_RotationCentralN(SDL_Surface* origine, float angle);
Dernière remarque :
- Il faut noter que l'on parcourt la surface de destination et non la surface d'origine pour forcer chaque pixel de destination a avoir une couleur à peu près correct (à peu près comme une rotation en informatique est dans la plupart des cas non bijective). Alors que si l'on parcourait les pixels de la surface d'origine et on déterminait sa nouvelle position, il pourrait y avoir des trous noirs dans la surface de destination.
Qu'en pensez-vous ?
Partager