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

The_Sin Messages postés 43 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 4 février 2006 - 20 déc. 2005 à 15:43
The_Sin Messages postés 43 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 4 février 2006 - 22 déc. 2005 à 18:53
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.

3 réponses

The_Sin Messages postés 43 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 4 février 2006
21 déc. 2005 à 15:54
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...
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
21 déc. 2005 à 17:22
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.
0
The_Sin Messages postés 43 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 4 février 2006
22 déc. 2005 à 18:53
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!
0
Rejoignez-nous