Accueil > Forum > > > > Tracer un cercle
Tracer un cercle
lundi 6 octobre 2008 à 13:37:28 |
Tracer un cercle

giudy
|
Bonjour ,
Je suis entrain d'écrire un programme qui trace un cercle (sans utiliser de fonctions trigonométriques , en tracé continu et les points calculés doivent être contigüs) .
J'ai illustré mon algorithme avec l'exemple suivant : je veux tracer un cercle de centre (10,10) et de rayon R=5 . On part du pixel de coordonnées (15,10) (qui appartient forcément au cercle) . Je commence par tracé le quart du cercle nord-est , sachant que le prochain pixel sera forcément soit celui qui se trouve immédiatement au nord (15,9) (ici d^2 qui est la distance au centre = 26) soit celui se trouvant à l'ouest (14,10)(pour celui là d^2=16) , soit celui au nord-ouest (14,9) ( pour celui ci d^2=17) .
Sachant que R^2=25 , on sélectionne le point dont la distance (au carré) au centre est la plus proche de 25 : j'ai pris le point de coordonnées (15,9). On répète cette opération jusqu'au point correspndant à pi/2 .
Je commence par écrire le programme C qui créé une fenêtre de 400*400 puis y trace un cercle de 100 pixels de rayon dont le centre se trouve aux coordonnées (200,200) :
#include <stdio.h> #include <graphics.h>
int main ( ) { int i ; int R = 5 creer_fenetre (400 , 400 , "white" , "black") for (i=100 ; i<=300 ; i++) afficher_point (100 , i) ;
/* Là ou je bloque , c'est que je voudrais utiliser la distance euclidienne pour calculer à chaque fois la distance d (distance au centre) mais je ne vois pas l'algorithme que je peux écrire pour utiliser cette formule ? (si on prend par ex deux points P1(x1,y1) et P2(x2,y2) et que d(P1,P2) = sqrt { (x1-x2)^2 + (y1-y2)^2 } */ 
J'espère avoir été clair pour l'énoncé !
Merci de m'aider .
Giudy
|
|
lundi 6 octobre 2008 à 14:31:52 |
Re : Tracer un cercle

genko
|
Bonjour Giudy, Si je comprends bien, tu veux implémenter /* (x1,y1) et P2(x2,y2) et que d(P1,P2) = sqrt { (x1-x2)^2 + (y1-y2)^2 } */. Alors sers toi du fichier d'entête "math.h" et utilise la fonction "pow" qui traite les puissances qu'elles soient entières ou réelles. Au fait avec la fonction pow, si x et y sont deux réels, x^y = pow(x,y). Et comme sqrt(x) est encore x^(0.5) Tu peux donc faire comme ceci: # include<math> d = pow(pow(x1 - x2,2) + pow(y1 - y2,2), 0.5); J'espère que cela t'aidera.
Merci. Genko
|
|
jeudi 9 octobre 2008 à 20:17:04 |
Re : Tracer un cercle

yann_lo_san
|
Salut, si ça peut t'aider,
_virtuel = la zone mémoire ou dessiner (surface DDraw par exemple) cx = centre x horizontal cy = centre y vertical r = rayon ECRAN_X = résolution horizontale
void circle(UCHAR* _virtuel, int cx, int cy, int r, unsigned char coul) { int x, y; for(x=-r; x<r; x++) { y = (int)sqrt(r*r - x*x); _virtuel[(cy+y)*ECRAN_X+x+cx] = coul; _virtuel[(cy-y)*ECRAN_X+x+cx] = coul; } }
|
|
Cette discussion est classée dans : écrire, centre, tracer, distance, cercle
Répondre à ce message
Sujets en rapport avec ce message
Prob avec Sleep [ par blinkseb ]
Bonjour à tous,j'ai besoin de tracer un cercle (en réalité c'est une ellipse mais le prob reste le même !) en un certain temps.Je calcule dont le nomb
le lieu d'un centre de gravité [ par annso777 ]
<TD id=HB_Focus_Element vAlign=top width="100%" background=""
resoudre des équation de cercle [ par inconnu2nulpar ]
slt ts le monde, alors j'ai besoin de petite aide,alors je vais essayer d'étre clair, donc je programme en C++, j'ai dans un tableau un nuage de point
ecriture d'un caractère au format exposant [ par toxjamescook ]
Bonjour,j'utilise borland c++ builder et j'aimerais pouvoir écrire un label du genre m3/h avec le trois sous format exposant.j'aimerais savoir quel es
tracer une courbe à partir d'un txt [ par daminou973 ]
Bonjour à tous! Je réalise actuellement un projet de deuxiéme année de bts iris. Mon projet consiste à définir les profils de consommation d'une centr
Choix d'une API [ par loic72 ]
Bonjour,je dois choisir une API pour pouvoir réaliser des graphes relativement complexes, avec des noeuds et arcs qui seront des objets spécifiques do
arc de cercle [ par thorodin ]
quelqu un aurait il un code (en C) pour tracer un arc de cercle sans utiliser la fonction Drawarc de l api windows.j ai comme parametre le cercle du c
acces fichier à distance [ par ezekiel_ezekiel ]
salut à tous,voila mon problème: je voudrais transferer uniquement le contenu d'un fichier que j'ai en local dans un fichier sur un serveur sans faire
programme en c [ par mapinfo ]
Bonsoir,Je débute en programmation en C, je devrais écrire un programme en C sur U.M.T.S. Voilà l'énnocé.Une image de satellite est une carte des alti
écrire quelque chose dans un fichier [ par rafmos ]
Je suis en train de développer un programme pour une bibliothèque en ligne qui permet d'écrire dans un fichier la longueur, la largeur, l'épaisseur, l
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|