next up previous contents index
Next: Un exemple Up: Bibliothèques Previous: Analyse syntaxique et lexicale

Fonctions graphiques

      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:

Nous ne décrirons pas ici les primitives de manipulation des images qu'on trouve dans le module graphics.


next up previous contents index
Next: Un exemple Up: Bibliothèques Previous: Analyse syntaxique et lexicale

1/11/1998