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