Dessiner des cercles vides ou pleins en c [Résolu]

cs_luckyalan 24 Messages postés jeudi 19 février 2009Date d'inscription 8 janvier 2014 Dernière intervention - 5 mai 2009 à 17:18 - Dernière réponse : cs_luckyalan 24 Messages postés jeudi 19 février 2009Date d'inscription 8 janvier 2014 Dernière intervention
- 6 mai 2009 à 14:49
Bonjour à tous,
c'est la première fois que je pose une question sur ce forum, merci d'avance de vos réponses. ;o))
je voudrais dessiner des celcles vides ou coloriés pleins.
comment je fais ? nb : je souhaite me passer d'une interface graphique.
merci encore et bonne prog à tous
Alain
quand on veut on peut
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 6 mai 2009 à 08:30
3
Merci
Salut

Pour dessiner des cercles pleins, c'est très facile, il suffit de reprendre l'équation d'un cercle:
for(i=0;i<100;i++)
  for(j=0;j<100;j++)
    if((i-xc)*(i-xc)+(j-yc)*(j-yc) < R*R)
        //On est à l'intérieur du cercle

Pour ce qui est de tracer un cercle vide, c'est un peu plus compliqué:
doubledouble ytmp,xtmp;
i,x=1,y=0;
double Pas=3.14159/(3*Rayon);
for(i=0;iint)(xtmp*Rayon+ Xoffset),(int)(ytmp*Rayon+Yoffset));
SetPixelInc((int)(-xtmp*Rayon+ Xoffset),(int)(ytmp*Rayon+Yoffset));
SetPixelInc((int)(xtmp*Rayon+ Xoffset),(int)(-ytmp*Rayon+Yoffset));
SetPixelInc((int)(-xtmp*Rayon+ Xoffset),(int)(-ytmp*Rayon+Yoffset));
}

A+
____________________________________________________________________________
Mon site internet :  

Merci Pistol_Pete 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de Pistol_Pete
Meilleure réponse
cs_luckyalan 24 Messages postés jeudi 19 février 2009Date d'inscription 8 janvier 2014 Dernière intervention - 6 mai 2009 à 11:21
3
Merci
hello,
merci beaucoup de m'avoir repondu.
bon, j'ai essayé ton code mais je n'arrive pas à le faire marcher. pour info, voici exectement ce que j'ai saisi :
#include

<stdio.h>#include

<math.h>#define

PI 3.1459
//Salut

//Pour dessiner des cercles pleins, c'est très facile, il suffit de reprendre l'équation d'un cercle:

//for(i=0;i<100;i++)

// for(j=0;j<100;j++)

// if((i-xc)*(i-xc)+(j-yc)*(j-yc) < R*R)

//On est à l'intérieur du cercle//Pour ce qui est de tracer un cercle vide, c'est un peu plus compliqué:

int

main (
void){

double

Rayon=10;
double

ytmp,xtmp;
double

i,x=1,y=0;
double

Pas=3.14159/(3*Rayon);
for

(i=0;i{

xtmp=(x*cos(i)+y*sin(i));

ytmp=(-x*sin(i)+y*cos(i));

SetPixelInc((

int)(xtmp*Rayon+ Xoffset),(
int)(ytmp*Rayon+Yoffset));SetPixelInc((

int)(-xtmp*Rayon+ Xoffset),(
int)(ytmp*Rayon+Yoffset));SetPixelInc((

int)(xtmp*Rayon+ Xoffset),(
int)(-ytmp*Rayon+Yoffset));SetPixelInc((

int)(-xtmp*Rayon+ Xoffset),(
int)(-ytmp*Rayon+Yoffset));}

system(

"pause");}

//A+

fin du code-----------------
voici mes messages d'erreur :
-----------------------
Avertissement 1 warning C4013: 'SetPixelInc' non défini(e) ; extern retournant int pris par défaut c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 24
Erreur 2 error C2065: 'Xoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 24
Erreur 3 error C2065: 'Yoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 24
Erreur 4 error C2065: 'Xoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 25
Erreur 5 error C2065: 'Yoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 25
Erreur 6 error C2065: 'Xoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 26
Erreur 7 error C2065: 'Yoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 26
Erreur 8 error C2065: 'Xoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 27
Erreur 9 error C2065: 'Yoffset' : identificateur non déclaré c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 27
Avertissement 10 warning C4013: 'system' non défini(e) ; extern retournant int pris par défaut c:\documents and settings\admin\mes documents\visual studio 2008\projects\cercles\cercles\main.c 29

OUPS. Aie a ie aie c'est la panique  merci encore.
au fait, ton code, c'est bien du C  c'est pas du CPP
quand on veut on peut, mais à plusieurs on peut plus que seul

Merci cs_luckyalan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de cs_luckyalan
Meilleure réponse
cs_luckyalan 24 Messages postés jeudi 19 février 2009Date d'inscription 8 janvier 2014 Dernière intervention - 6 mai 2009 à 13:30
3
Merci
merci pour le conseil.
Je suis déjà dans les livres à fond, mais tu as raison, peut-être que je veux aller trop vite.
il me semblait que les foruns étaient destinés à aider ceux qui ont des problèmes et n'étaient pas reservés qu'aux initiés avertis...
je suis allé sur tes 2 sites, mais n'y ai trouvé que tu CPP (avec CMUGraphics) et pas de C. dommage merci

quand on veut on peut

Merci cs_luckyalan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de cs_luckyalan
Meilleure réponse
cs_luckyalan 24 Messages postés jeudi 19 février 2009Date d'inscription 8 janvier 2014 Dernière intervention - 6 mai 2009 à 14:12
3
Merci
merci, j'avoue que ta réponse est plus sympa que la première. J'avais mis les codes d'erreur juste pour que l'info soit complète et pour te demander si en fait 'Yoffset' par exemple, était juste une variable ou s'il s'agissait d'une instruction non reconnue (car dépendant d'une librairie non installée ou étant une instruction non identifiée car elle était en C++ alors que j'étais en C)
penses-tu qu'il y a un intérêt à continuer à apprendre le C ou qu'il faut passer directement au C++ ?
merci encore
je me suis remis à la prog après 15 ans d'arrêt pour aider mon fils à débuter.Quand on veut on peut, mais c'est pas toujours facile, patience et longueur de temps font plus que force et que rage.
Alain

Merci cs_luckyalan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de cs_luckyalan
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 6 mai 2009 à 13:07
0
Merci
Avant de coder, je te conseille tout d'abord de prendre un bon livre sur le C et de t'y plonger. Toutes les erreurs qui sont marqués sont triviales à corriger.
La fonction SetPixelInc
doit être implémenter par toi, tout dépend de ce que tu utilises pour afficher un pixel. Sinon ce code est tiré d'une classe (regarde mon site internet) mais pas besoin de classe pour le faire fonctionner.

A+
____________________________________________________________________________
Mon site internet :  
Commenter la réponse de Pistol_Pete
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 6 mai 2009 à 13:57
0
Merci
Il me semble tout de même que les erreurs précédentes sont assez claire "identificateur non déclaré", déclarer une variable est quand même vraiment la base...

Maintenant concernant les bibliothèques graphique, CMUGraphics est très bien pour débuter même si c'est du cpp. Cependant cette lib est vielle et pas maintenu à jour, c'est un peu galère de l'installer sur VC 2008. Si tu veux quand même essayer prend les sources sur mon site : http://pistol.petesampras.free.fr.

Maintenant si tu veux faire du C pur, je te conseille d'utiliser les API windows. C'est beaucoup moins facile pour débuter mais beaucoup plus puissant. Et en plus il n'y a pas de librairie à ajouter...
Tu trouveras tout ici:
http://www.brunews.com/brunews/download/CP5.zip
et les sources:
http://www.brunews.com/brunews/download/CP5Sources.zip
A+
____________________________________________________________________________
Mon site internet :  
Commenter la réponse de Pistol_Pete
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 6 mai 2009 à 14:39
0
Merci
Désolé si je t'ai paru un peu rude lors de ma réponse ce n'était pas voulu. Mais il y trop de monde sur ce forum qui ne fait pas le moindre effort de recherche personnelle (google ou autre) et cela n'est pas ton cas donc je m'excuse.

Xoffset et Yoffset définissent le centre du cercle. Ce sont donc, deux simples int. Tout comme Rayon.
Ces sont les trois paramètres de cette fonction.

Je pense, et je ne suis pas le seul à le dire, qu'il faut commencer par travailler le C. Ensuite quand toutes les bases seront acquises, tu pourras passer au C++. C'est vraiment important de bien connaitre les bases avant de passer à l'orienter objet.
A+
____________________________________________________________________________
Mon site internet :  
Commenter la réponse de Pistol_Pete
cs_luckyalan 24 Messages postés jeudi 19 février 2009Date d'inscription 8 janvier 2014 Dernière intervention - 6 mai 2009 à 14:49
0
Merci
merci encore de ton aide, je vais essayer de completer le code que tu m'as envoyé jusqu'à ce qu'il marche !!!!
à+ peut être sur un autre sujet

quand on veut on peut
Commenter la réponse de cs_luckyalan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.