Département
INFORMATIQUE
|
Mode d'emploi de la bibliothèque graphique.h
sur stations de travail
Interface de programmation permettant
dans une application écrite en C
d'utiliser des fonctions graphiques de base
développées sous X11
Sommaire
- Avertissement
- Fonctions graphiques
- Création et suppression d'une fenêtre graphique
- Tracés élémentaires
- Couleurs disponibles par défaut pour les traits et contours
- Interface avec l'utilisateur
- Un exemple utilisant graphique.h
- Un modèle de Makefile
Avertissement
Cette bibliothèque doit être correctement mentionnée pour la compilation (#include <graphiqu.h>) et pour l'édition de liens (gcc -lgraphic). Elle permet de réaliser simplement
quelques tracés graphiques de base. Il est à noter que toutes les
fonctions travaillent avec des coordonnées utilisateur, c'est à
dire relativement aux intervalles de valeurs définis lors de la
création d'une fenêtre graphique.
En ce qui concerne les couleurs, une palette est définie par
défaut avec 256 couleurs dont les 16 premières sont les
mêmes que les 16 premières couleurs des PC.
Une fonction vous permettra de redéfinir vos propres couleurs avec leurs
composantes (Rouge, Vert, Bleu).
Fonctions graphiques
Création et suppression d'une fenêtre graphique
- void Initialisation_Graphique (float xmin, float ymin, float xmax, float ymax);
- Cette fonction ouvre une fenêtre graphique dont les dimensions sont délimitées par le rectangle (xmin, ymin,xmax, ymax). Les coordonnées sont des coordonnées utilisateurs (nombres réels).
(xmin,ymin) est le point en bas à gauche et (xmax,ymax) est le point en haut à droite.
- void Fin_Graphique(void);
- L'appel de cette fonction est obligatoire pour supprimer la fenêtre graphique, faute de quoi le processus qui la gère ne s'arrêtera pas et nécessitera d'être tué.
void Efface(void);
- Efface le contenu de la fenêtre.
Tracés élémentaires
- void Trait (float x1, float y1, float x2, float y2, int couleur);
- Tracé d'un trait entre les points (x1,y1) et (x2,y2) avec la couleur numéro couleur.
- void Croix (float x, float y, int couleur);
- Tracé d'une croix autour du point de coordonnées (x,y) dans un trait de la couleur numéro couleur
.
- void Point (float x, float y, int couleur);
- Tracé du point de coordonnées (x,y) de la couleur numéro couleur.
- void Cercle (float x, float y, int rayon, int couleur);
- Tracé d'un cercle de centre (x,y) et de rayon rayon avec la couleur numéro couleur.
- void Disque (float x, float y, int rayon, int couleur);
- Remplissage dans la couleur numéro couleur d'un cercle de centre (x,y) et de rayon rayon.
- void DrawPoly(int nbr_points, float *poly_points, int couleur);
- Tracé avec la couleur numéro couleur d'un polygone dont les coordonnées sont stockées dans le tableau de réels poly_points. Le nombre de points du polygone est spécifié dans la variable nbr_points.
- void FillPoly(int nbr_points, float *poly_points, int couleur);
- Remplissage dans la couleur couleur d'un polygone dont les coordonnées sont stockées dans le tableau de réels poly_points. Le nombre de points du polygone est spécifié dans la variable nbr_points.
- void DrawTriangle(float *poly_points, int couleur);
- Tracé avec la couleur numéro couleur d'un triangle dont les coordonnées sont stockées dans le tableau de réels poly_points.
- void FillTriangle(float *poly_points, int couleur);
- Remplissage dans la couleur couleur d'un triangle dont les coordonnées sont stockées dans le tableau de réels poly_points.
- void DrawRectangle(float x1, float y1, float x2, float y2, int couleur);
- Tracé avec la couleur numéro couleur d'un rectangle déterminé par les points de coordonnées (x1,y1) et (x2,y2).
- void FillRectangle(float x1, float y1, float x2, float y2, int couleur);
- Remplissage avec la couleur numéro couleur d'un rectangle déterminé par les points de coordonnées (x1,y1) et (x2,y2).
- void Ecrit(float x1, float y1, char *chaine, int couleur);
- Ecriture de la chaine de caractères chaine dans la couleur numéro couleur à partir du point de coordonnées (x1,y1).
Couleurs disponibles par défaut pour les traits et contours
0 = Black 1 = Blue 2 = Green 3 = Cyan |
4 = Red 5 = Magenta 6 = Brown 7 = LightGray |
8 = DarkGray 9 = LightBlue 10 = LightGreen 11 = LightCyan |
12 = LightRed 13 = LightMagenta 14 = Yellow 15 = White |
Création de couleurs
- void CreateColorRGB(int numero,int R,int G,int B);
- Changement de définition de la couleur numéro numero en lui donnant les composantes (R,G,B)
Le numéro de la couleur varie entre 0 et 255.
Les valeurs des composantes sont des entiers compris entre 0 et 255.
Manipulation de texte
- void Hauteur_Texte(float hauteur);
- Change la hauteur d'écriture de texte à l'écran.
- void itoa (int n, char s[]);
- Convertit l'entier n dans la chaîne de caractères s.
Interface avec l'utilisateur
- void Deplace (float x1, float y1);
- On se positiojnne au point de coordonnées (x,y).
- void Ecrit (char *chaine,int couleur);
- Ecrit la chaîne de caractères chaine avec la couleur numéro couleur, à partir de la position courante.
- void EcritXY (float x, float y, char *chaine,int couleur);
- Ecrit la chaîne de caractères chaine avec la couleur numéro couleur, à la position (x,y).
- int Lit(void);
- Ouverture d'une fenêtre de dialoque permettant l'acquisition de valeurs entières.
Retourne l'entier rentré au clavier.
- void Attente(void);
- Attente d'un laps de temps.
Un exemple utilisant graphiqu.h
L'exemple suivant a été créé pour être utilisé et testé sur les ordinateurs PC de l'ENST et utilisant la bibliothèque mise à la disposition des élèves.
A condition d'écrire correctement le Makefile destiné à créer le programme exécutable, il peut être utilisé sur les stations de travail de la même façon que sur les PC.
demo.c : Exemple de programme utilisant la bibliothèque graphique
Un modèle de Makefile
Les programmes compilés ne peuvent pas tourner indifféremment sur système solaris ou sunos. Il est donc indispensable d'effectuer la compilation adéquate pour lancer toute exécution de vos programmes.
Pour organiser correctement votre travail nous vous conseillons de créer
3 fichiers différents:
- Makefile
- Makefile.solaris
- Makefile.sunos
similaires à ceux que vous trouverez ci-après. Il suffira ensuite de lancer la commande make solaris ou make sunos selon votre environnement.
Makefile : Fichier Makefile
Makefile.solaris : Pour créer un exécutable sous solaris
Makefile.sunos : Pour créer un exécutable sous sunos