Bonjour,
je veux dessiner une cercle en c++ en utilisant sdl ja fait ce code mais ca ne fonctionne pas svp aide moi à le corriger et merci
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <SDL/SDL.h>
void pause();
void cercle(long const rayon, long const x, long const y, SDL_Surface *const ecran);
int main(int argc, char *argv[])
{
if (SDL_Init(SDL_INIT_VIDEO) >= 0)
{
SDL_Surface *ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
if (ecran != NULL)
{
SDL_WM_SetCaption("Ma super fenêtre SDL !", NULL);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 17, 206, 112));
SDL_Flip(ecran);
{
long const x = 640/2;
long const y = 480/2;
long const rayon =25;
cercle(rayon, x, y, ecran);
}
pause();
}
}
SDL_Quit();
return EXIT_SUCCESS;
}
void pause()
{
int continuer = 1;
while (continuer)
{
SDL_Event event;
SDL_WaitEvent(&event);
switch (event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
void cercle(long const rayon, long const x, long const y, SDL_Surface *const ecran)
{
double const pi = 3.141592;
double const pixels = pi*2*rayon;
double compteur = 0.0;
long coups = 0;
SDL_Rect position = {
0
};
while (coups < pixels)
{
SDL_Surface *rectangle = SDL_CreateRGBSurface (SDL_HWSURFACE,1,1,32,0,0,0,0);
if (rectangle != NULL)
{
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 10, 20, 120));
SDL_Flip(ecran);
position.x = x+rayon* cos(compteur * pi / 180);
position.y = y+rayon* sin(compteur * pi / 180);
SDL_BlitSurface(rectangle, NULL, ecran, &position);
SDL_FreeSurface(rectangle), rectangle = NULL;
}
compteur += 360/pixels;
coups ++;
}
}