/** * * Ce programme montre comment il est possible de dessiner les figures * géométriques suivantes : * * cercle * disque ( cercle plein ) * ellipse * ellipse pleine * rectangle * rectangle plein * ligne * point * Courbe de Bézier * polygone * polygone plein * * Pour cela le programme utilise les fonctions suivantes : * *------------------------------------------------------------------------------ * MLV_draw_circle: Dessine un cercle à une position et un rayon spécifiés en * paramètres. * * void MLV_draw_circle( * int x, Coordonnée en X du centre du cercle * int y, Coordonnée en Y du centre du cercle * int radius, Rayon du cercle * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_filled_circle : Dessine un disque plein dont le centre et le rayon * sont passés en parametres. * * void MLV_draw_filled_circle( * int x, Coordonnée en X du centre du cercle * int y, Coordonnée en Y du centre du cercle * int radius, Rayon du cercle * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_ellipse : Dessine une ellipse dont la position, les rayons et la * couleur sont passés en paramètres. * * MLV_draw_ellipse( * int x, Coordonnée en X du centre de l'ellipse * int y, Coordonnée en Y du centre de l'ellipse * int radius_x, Rayon en X de l'ellipse * int radius_y, Rayon en Y de l'ellipse * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_filled_ellipse : Dessine une ellipse pleine dont la position, les * rayons et la couleur sont passés en paramètres. * * void MLV_draw_filled_ellipse( * int x, Coordonnee en X du centre de l'ellipse * int y, Coordonnee en Y du centre de l'ellipse * int radius_x, Rayon en X de l'ellipse * int radius_y, Rayon en Y de l'ellipse * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_rectangle : Dessine un rectangle dont la taille, la couleur et la * position du sommet Nord-Ouest sont données en * paramètres. * * void MLV_draw_rectangle( * int x, Coordonnée en X du sommet Nord-Ouest du rectangle * int y, Coordonnée en Y du sommet Nord-Ouest du rectangle * int width, Largeur du rectangle * int height, Hauteur du rectangle * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_filled_rectangle : Dessine un rectangle dont la taille, la couleur * et la position du sommet Nord-Ouest sont données * en paramètres. * void MLV_draw_filled_rectangle( * int x, Coordonnée en X du sommet Nord-Ouest du rectangle * int y, Coordonnée en Y du sommet Nord-Ouest du rectangle * int width, Largeur du rectangle * int height, Hauteur du rectangle * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_line : Dessine une ligne dont les coordonnées des deux extrémités * sont passées en paramètres. * void MLV_draw_line( * int x1, Coordonnée en X de la première extrémité de la ligne * int y1, Coordonnée en Y de la première extrémité de la ligne * int x2, Coordonnée en X de la deuxième extrémité de la ligne * int y2, Coordonnée en Y de la deuxième extrémité de la ligne * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_point : Dessine un point dont les coordonées sont passées * en paramètres. * * void MLV_draw_point( * int x, Coordonnée en X du point * int y, Coordonnée en Y du point * MLV_Color color Couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_bezier_curve: Dessine une courbe de Bézier à partir d'une liste de * sommets. * * void MLV_draw_bezier_curve( * const int* vx, La liste des coordonnées en X des différents * sommets de la courbe. * const int* vy, La liste des coordonnées en Y des différents * sommets de la courbe. * int npoints, Le nombre de sommets de la courbe de Bézier. * MLV_Color color La couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_polygon: Dessine un polygone à partir d'une liste de sommets. * * void MLV_draw_polygon( * const int* vx, La liste des coordonnées en X des différents * sommets du polygone. * const int* vy, La liste des coordonnées en Y des différents * sommets du polygone. * int npoints, Le nombre de sommets du polygone. * MLV_Color color La couleur du tracé * ); * * ----------------------------------------------------------------------------- * MLV_draw_polygon: Dessine un polygone plein à partir d'une liste de sommets. * * void MLV_draw_filled_polygon( * const int* vx, La liste des coordonnées en X des différents * sommets du polygone. * const int* vy, La liste des coordonnées en Y des différents * sommets du polygone. * int npoints, Le nombre de sommets du polygone. * MLV_Color color La couleur du tracé * ); * * ----------------------------------------------------------------------------- * * Il existe d'autres fonctions de dessin. Vous les trouverez en consultant * le fichier MLV_shape.h ou en tapant dans le terminal la commande : * * man MLV_shape.h */ #include int main(int argc, char *argv[]) { /* Créé et affiche la fenêtre */ MLV_create_window("beginner - 2 - shapes", "shapes", 640, 480); /* Dessine des cercles, ellipses, rectangles, lignes et points */ MLV_draw_circle(20, 20, 10, MLV_COLOR_PURPLE); MLV_draw_filled_circle(50, 20, 10, MLV_COLOR_BROWN); MLV_draw_ellipse(100, 20, 30, 10, MLV_COLOR_CYAN); MLV_draw_filled_ellipse(170, 20, 30, 10, MLV_COLOR_PINK); MLV_draw_rectangle(10, 50, 40, 20, MLV_COLOR_BLUE); MLV_draw_filled_rectangle(70, 50, 40, 20, MLV_COLOR_GREEN); MLV_draw_line(120, 50, 160, 90, MLV_COLOR_WHITE); MLV_draw_point(10, 110, MLV_COLOR_RED); /* Déclare les coordonnées pour la courbe de Bézier */ int coordonnee_x[4] = {10, 50, 90, 130}; int coordonnee_y[4] = {150, 190, 150, 190}; /* Dessine une courbe de Bézier avec ses sommets */ MLV_draw_bezier_curve(coordonnee_x, coordonnee_y, 4, MLV_COLOR_RED); MLV_draw_circle(coordonnee_x[0], coordonnee_y[0], 3, MLV_COLOR_GREEN); MLV_draw_circle(coordonnee_x[1], coordonnee_y[1], 3, MLV_COLOR_GREEN); MLV_draw_circle(coordonnee_x[2], coordonnee_y[2], 3, MLV_COLOR_GREEN); MLV_draw_circle(coordonnee_x[3], coordonnee_y[3], 3, MLV_COLOR_GREEN); /* Déclare les coordonnées pour le polygone */ int coordonnee1_x[4] = {200, 240, 320, 280}; int coordonnee1_y[4] = {150, 190, 190, 150}; /* Dessine un polygone avec ses sommets */ MLV_draw_filled_polygon(coordonnee1_x, coordonnee1_y, 4, MLV_COLOR_BLUE); MLV_draw_polygon(coordonnee1_x, coordonnee1_y, 4, MLV_COLOR_RED); MLV_draw_circle(coordonnee1_x[0], coordonnee1_y[0], 3, MLV_COLOR_GREEN); MLV_draw_circle(coordonnee1_x[1], coordonnee1_y[1], 3, MLV_COLOR_GREEN); MLV_draw_circle(coordonnee1_x[2], coordonnee1_y[2], 3, MLV_COLOR_GREEN); MLV_draw_circle(coordonnee1_x[3], coordonnee1_y[3], 3, MLV_COLOR_GREEN); /* Affiche du texte */ MLV_draw_text( 10, 120, "Juste au dessus de cette ligne, il y a un pixel rouge.", MLV_COLOR_MAGENTA ); /* Met à jour l'affichage */ MLV_actualise_window(); /* Attend 10 secondes avant la fin du programme */ MLV_wait_seconds(10); /* Fermer la fenêtre */ MLV_free_window(); return 0; }