Next: Un exemple
Up: Bibliothèques
Previous: Analyse syntaxique et lexicale
Les primitives graphiques sont indépendantes de
la machine.
Sur les micros-ordinateurs le graphique est intégré à l'application;
sur les machines Unix, il faut appeler une version interactive
spéciale, qui s'obtient par la commande camllight camlgraph.
On accède aux primitives graphiques en ouvrant le module graphics.
On crée la fenêtre de dessin en
appelant la fonction open_graph qui prend en argument
une chaîne de description de la géométrie de la fenêtre (par défaut,
une chaîne vide assure un comportement raisonnable). La description de
la fenêtre dépend de la machine et n'est pas obligatoirement
prise en compte par l'implémentation de la bibliothèque.
Un programme qui utilise le graphique commence donc par ces deux
lignes:
#open "graphics";;
open_graph "";;
La taille de l'écran graphique dépend de l'implémentation, mais
l'origine du système de coordonnées est toujours en bas et à gauche. L'axe des
abscisses va classiquement de la gauche vers la droite et l'axe des
ordonnées du bas vers le haut. Il y a une notion de point courant et
de crayon avec une taille et une couleur courantes.
On déplace le crayon,
sans dessiner ou en dessinant des segments de droite par les fonctions
suivantes:
- moveto x y
- déplace le crayon aux coordonnées
absolues (x, y).
- lineto x y
- trace une ligne depuis le point courant
jusqu'au point de coordonnées (x, y).
- plot x y
- trace le point (x, y).
- set_color c
- fixe la couleur du crayon. (Les couleurs
sont obtenues par la fonction rgb; on dispose aussi des
constantes black, white, red, green, blue,
yellow, cyan et magenta.)
- set_line_width n
- change la largeur du trait du crayon.
- draw_arc x y rx ry a1 a2
- trace un arc d'ellipse de
centre (x, y) de rayon horizontal rx, vertical
ry, de l'angle a1 à l'angle a2 (en degrés).
- draw_ellipse x y rx ry
- trace une ellipse de
centre (x, y) de rayon horizontal rx, et de rayon
vertical ry.
- draw_circle x y r
- trace un cercle
centre (x, y) et de rayon r.
On peint l'intérieur de ces courbes avec
fill_rect, fill_arc, fill_ellipse, fill_circle.
Dans la fenêtre graphique, on imprime avec les fonctions:
- draw_char c
- affiche le caractère c au point
courant dans la fenêtre graphique.
- draw_string s
- affiche la chaîne de caractères s.
- close_graph ()
- détruit la fenêtre graphique.
- clear_graph ()
- efface l'écran.
- size_x ()
- renvoie la taille de l'écran en abscisses.
- size_y ()
- renvoie la taille de l'écran en ordonnées..
- background
- et foreground sont respectivement les
couleurs du fond et du crayon.
- point_color x y
- renvoie la couleur du point (x,
y).
- current_point ()
- renvoie la position du point courant.
- button_down
- renvoie vrai si
le bouton de la souris est enfoncé, faux sinon.
- mouse_pos ()
- renvoie les cordonnées du curseur de la souris.
- read_key ()
- attend l'appui sur une touche, la renvoie.
- key_pressed ()
- renvoie vrai si
une touche est enfoncée, faux sinon.
Plus généralement, un certain nombre d'événements observent
l'interaction entre la machine et l'utilisateur:
- wait_next_event evl
- attend jusqu'à ce que l'un des
événements de la liste evl se produise, et renvoie le statut de
la souris et du clavier à ce moment-là. Les événements possibles sont:
- Button_down: le boutton de la souris a été pressé.
- Button_up: le boutton de la souris a été relaché.
- Key_pressed: une touche a été appuyée.
- Mouse_motion: la souris a bougé.
- Poll: ne pas attendre, retourner de suite.
Nous ne décrirons pas ici les primitives de
manipulation des images qu'on trouve dans le module graphics.
Next: Un exemple
Up: Bibliothèques
Previous: Analyse syntaxique et lexicale
1/11/1998