Advertisement
Guest User

Tracer un cercle

a guest
Nov 22nd, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. /**
  2.  * Dessine un cercle
  3.  * @author Alexandre Astruc
  4.  * @param O Le centre du cercle
  5.  * @param radius Le rayon du cercle
  6.  * @param coulour La couleur du cercle
  7.  */
  8. void paint_circle(POINT O, int radius, COLOUR colour){
  9.  
  10.     float elementaryAngle = asin(1./(float)radius);
  11.     // Détermine l'angle entre, pour le cercle de centre (0,0), ce cercle et la droite y=1
  12.     // <=> l'angle entre le pixel de la base et le pixel au dessus.
  13.     // Pour cette partie, fais attention: il est plus prudent de prendre le rayon en integer
  14.     // car on travaille sur des pixels, mais les fonctions asin et / ne prennent que des float,
  15.     // donc il faut que tu changes le type du rayon en cours de route, via un cast, ou je
  16.     // sais pas comment on fait en processing.
  17.  
  18.     POINT C; // Un point du cercle
  19.    
  20.     for (int i=0; i < (2 * M_PI/elementaryAngle + 1); i++){ // M_PI est la constante Pi
  21.        
  22.         C.x = O.x + round(radius * cos(i * elementaryAngle));
  23.         C.y = O.y + round(radius * sin(i * elementaryAngle));
  24.  
  25.         draw_pixel(C, colour);
  26.         // Fonction qui affiche un pixel sur l'écran. Je sais quelle fonction en Processing
  27.         // fait ça, mais fait attention à plutôt les imprimer une fois que tous sont
  28.         // déterminés.
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement