Librairie Raster (SRGP)


Michel Beaudouin-Lafon, mbl@lri.fr

 

 

Cet ensemble de fonctions complète la librairie SRGP utilisée dans l'ouvrage "Introduction à l'infographie" de Foley et van Dam. Elle est dédiée au développement d'algorithmes de rastérisation. Cette librairie a été utilisée dans le cours d'introduction à l'infographie de 1995 à 1997. Depuis 1998, une version Java de cette librairie est utilisée.

Résumé des fonctions

void RasterInit (char* name, int width, int height, int scale, boolean grid, boolean square);

void RasterEnd (void);

void RasterMessage (char*, ...);

void RasterColor (int grey);

void RasterClear ();

void RasterSetPixel (int x, int y);

void RasterResetPixel (int x, int y);

void RasterGetInput (point *pt, char* key);

point RasterGetPoint (void);

char RasterGetKey (char* keys);

void RasterHairLine (point p0, point p1);

void RasterHairLineCoord (int x0, int y0, int x1, int y1);

void RasterHairCircle (point c, int r);

void RasterHairCircleCoord (int cx, int cy, int r);

Description des fonctions

void RasterInit (char* name, int width, int height, int scale, boolean grid, boolean square);

Fonction d'initialisation. Doit être obligatoirement appelée avant toute autre fonction.

name : titre de la fenêtre ("Raster" si pointeur nul).

width : nombre de pixels par ligne (>=10).

height : nombre de pixels par colonne (>=10).

scale : taille des pixels (fixé à 4 si < 1).

grid : Affiche une grille si TRUE (scale doit être > 4)

square : Les pixels sont carrés si TRUE et circulaire sinon.

 

void RasterEnd (void);

Doit être appelée à la fin du programme.

 

void RasterMessage (char*, ...);

Affiche un message en haut de la fenêtre.

Utilise le même format que printf avec une liste maximale de 10 arguments. Efface le message si le pointeur de la chaine est nul.

 

void RasterColor (int grey);

Fixe la couleur courante : 0 --> Blanc, 100 --> Noir.

 

void RasterClear ();

Affecte la couleur Blanche à tous les pixels.

 

void RasterSetPixel (int x, int y);

Affecte la couleur courante au pixel de coordonées (x,y).

 

void RasterResetPixel (int x, int y);

Affecte la couleur blanche au pixel de coordonnées (x,y).

 

void RasterGetInput (point *pt, char* key);

Attend jusqu'à ce qu'un clic de souris se soit produit ou une touche du clavier soit appuyée.

Au retour pt contient les coordonnées du pixel pointé ou (-1,-1) si c'est une touche qui a été appuyée. key contient le code ASCII du caractère correspondant à la touche appuyée ou '\0' si c'est un clic qui s'est produit.

Remarque : si le clic a été produit en même temps que l'appui de la touche pt sera différent de (-1,-1) et key sera différent de '\0'.

 

point RasterGetPoint (void);

Attend jusqu'à ce qu'un clic de souris se soit produit. Renvoie les coordonnées du point où s'est produit le clic.

 

char RasterGetKey (char* keys);

Attend jusqu'à ce qu'une touche du clavier soit appuyée. Renvoie le caractère correspondant.

Si keys est différent de 0, cette fonction attend jusqu'à ce qu'une touche, correspondant à un des caractères de la chaine keys, soit appuyée.

 

void RasterHairLine (point p0, point p1);

Trace une ligne définie par les points p0 et p1 en mode XOR.

 

void RasterHairLineCoord (int x0, int y0, int x1, int y1);

Trace une ligne définie par les points (x0,y0), (x1,y1) en mode XOR.

 

void RasterHairCircle (point c, int r);

Trace un cercle de centre c et de rayon r en mode XOR.

 

void RasterHairCircleCoord (int cx, int cy, int r);

Trace un cercle de centre (cx,cy) et de rayon R en mode XOR.

 


Michel Beaudouin-Lafon