Programme pour tracer un cercle en c
Résolu/Fermé
Halidc
Messages postés
12
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
17 février 2014
-
2 févr. 2014 à 20:07
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 févr. 2014 à 22:57
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 févr. 2014 à 22:57
A voir également:
- Programme pour tracer un cercle en c
- Programme demarrage windows 10 - Guide
- Tracer un mail - Guide
- Comment tracer un ordinateur volé - Guide
- Desinstaller un programme - Guide
2 réponses
Halidc
Messages postés
12
Date d'inscription
mercredi 29 janvier 2014
Statut
Membre
Dernière intervention
17 février 2014
13
16 févr. 2014 à 14:51
16 févr. 2014 à 14:51
// ce programme a pour but de tracer un cercle (continue) en utilissant des caracteres. // probleme: le cercle tracer n est pas continue, comment faire ? #include <stdio.h> #include <stdlib.h> int main() { int r , x, y, rep=1; while(rep==1) { system("clear"); printf("Entrer le rayon du cercle : "); scanf("%i",&r); for (y = -r; y < r+1; y++) { printf("\n"); for (x = -r; x < r+1 ; x++) { if(abs((x * x) + (y * y)-(r * r)) <= (r/2)) { printf(" * "); } else { printf(" "); } } } printf("\n\nrepeter (oui=> 1)? "); scanf("%i",&rep); } system("clear"); printf("\n============> AUREVOIR <===========\n"); return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
2 févr. 2014 à 22:35
2 févr. 2014 à 22:35
Bonjour,
Le problème est que tu affiches des points sur un repère dont les coordonnées sont des entiers. Donc forcément, ça ne sera pas un cercle parfait.
En revanche, ce que tu peux faire est d'autoriser une certaine tolérance.
Tu affiches tous les points qui satisfont la condition suivante :
A toi de jouer avec epsilon. Tu peux même t'arranger pour qu'il soit fonction de x, y et r.
Note :
printf(" ",x,y);
C'est incorrect ça. Il faut enlever x et y. Ou alors si tu veux afficher les valeurs, il faut utiliser %d...
Cdlt,
Le problème est que tu affiches des points sur un repère dont les coordonnées sont des entiers. Donc forcément, ça ne sera pas un cercle parfait.
En revanche, ce que tu peux faire est d'autoriser une certaine tolérance.
Tu affiches tous les points qui satisfont la condition suivante :
if( abs((x * x) + (y * y)-(r * r))<epsilon)
A toi de jouer avec epsilon. Tu peux même t'arranger pour qu'il soit fonction de x, y et r.
Note :
printf(" ",x,y);
C'est incorrect ça. Il faut enlever x et y. Ou alors si tu veux afficher les valeurs, il faut utiliser %d...
Cdlt,
16 févr. 2014 à 15:54
Cela te convient ou pas ?
17 févr. 2014 à 03:11
Merci quand meme.
19 févr. 2014 à 22:57
En interprétant ce que tu souhaites (voir en extrapolant), tu souhaites un cercle parfait dans une console ? Si c'est le cas, c'est impossible. Dans la console, tu ne peux afficher que des caractères à des coordonnées entières, ce qui n'est pas le cas d'un cercle...