SDL : Un cercle pas entier en fonction de y, x et du rayon

Signaler
Messages postés
43
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
4 février 2006
-
Messages postés
43
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
4 février 2006
-
Salut, je fais un cercle en SDL, et quand x ou y sont plus petits que le rayon ou plus grand que la 'taille de l'écran - rayon', le cercle dessiné n'est pas entier.
Un exemple avec r 30, x 15 et y = 560 :

_point.h = 1 ;
_point.w = 1 ;
for(i=0 ; i<=6.28 ; i+=0.0001)
{
_point.x = cos(i) * 30 + 15 ;
_point.y = sin(i) * 30 + 560 ;
SDL_FillRect(sSurface, &_point, SDL_MapRGB(sSurface->format, 255, 255, 255)) ;
}

Merci d'avance pour ceux qui trouveront l'erreur.
A voir également:

3 réponses

Messages postés
43
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
4 février 2006

Voilà comme ça si ça peut-être plus clair, quelqu'un peut tester, ou
quelqu'un a déjà fait des cercles non? Je comprend vraiment pas
l'erreur...



rayon 30 ; x 20 ; y = 550 ;

_point.h 1 ; _point.w 1 ;

for(i=0 ; i<=6.28 ; i+=0.0001)

{

_point.x = cos(i) * rayon + x ;

_point.y = sin(i) * rayon + y ;


SDL_FillRect(sSurface, &_point, SDL_MapRGB(sSurface->format,
255, 255, 255)) ;

}



svp...
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Deja, de mettre 0.0001 c'est completement fou :) Mets 0.01 grand max.
Et comme j'utilise pas SDL, je comprend pas la fonction SDL_FillRect.



A part, la fonction SDL_FIllRect, le reste a l'air correct.
Messages postés
43
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
4 février 2006

Si je met 0.01 le cercle n'est pas linéaire mais c'est vrai qu'avec 0.001 ça suffit en fait.

Mais j'ai tjs mon problème.

Sinon SDL_FillRect prend la surface sur laquelle tu affiches le
rectangle, l'adresse de la structure du rectangle à afficher (contenant
x,y,w,h), et la couleur... mais l'erreur ne vient pas de ça, sachant
qu'en plus quand x ou y sont plus grand que le rayon ou plus petit que
la 'taille de l'écran - rayon', ça marche!