Algorithmique - Séance 7 -Séance 6Séance 8

En Pascal, les images affichées le sont à base de points. De base, le Pascal n’en est pas capable. Pour remédier à ce problème, il est possible d’ajouter à sn programme des banques de fonctions prédéfinies appelées « unités » .

L’unité que nous allons utiliser s’appelle « jbbm ». Elle s’utilise avec l’unité « crt ». Il suffit d’écrire en début de programme :

USES crt,jbbm;

Ecran, résolution et pixels

Pour chaque image affichée à l’écran, l’ordinateur utilise une division en 200 lignes de 320 points (appelés pixels) chacune. Chaque pixel est donc repéré par ses coordonnées :





L’origine du repère se situe en haut à gauche.

La première coordonnée repère la positionhorizontale et la seconde la position verticale.

Les coordonnées sont des nombres entiers.

Palette et couleur

Pour afficher un point, il suffit de lui donner une couleur. La couleur est un nombre qui se referre à un index dans la palette de couleur. La palette est composée de 256 couleurs (de 0 à 255) qu’on pourra configurer à sa guise.

Un premier exemple

PROGRAM test;
USES crt,jbbm;
VAR x,y : INTEGER;
col : byte;
BEGIN
Write(‘x=’);readln(x);
Write(‘y=’);readln(y);
Write(‘numéro de la couleur : ‘);readln(col);
Setmcga;
Pix(x,y,col,vga);
Readln;
END.

Analyse :
x désigne la première coordonnée et y la seconde. Col désigne le numéro de la couleur. Attention il n’y a pas de teste de validité.

Setmcga;

Indique que l’on passe en mode graphique.

Pix(x,y,col,vga);

Affiche un point de coordonnées (x,y) et de couleur col à l’écran.

A la fin du programme, le pascal repasse automatiquement en mode texte et efface ce qui a été dessiné.

Les procédures et fonctions graphiques de l’unité jbbm

Les procédures :
setMCGA : passage en mode MCGA : 320*200 en 256 couleurs
settext : passage en mode texte
cls(col:byte;vga) : efface l'écran avec une couleur
pix(x,y:integer;col:byte;vga) : affiche un pixel en couleur
synchro : attend la fin d'un rafraîchissement de l'écran
line(x1,y1,x2,y2:integer;col:byte;vga) : trace une ligne entre les pixels(x1,y1) et (x2,y2)
ecrirecol(col,r,v,b:byte) : modifie une couleur de la palette

Les fonctions :
couleur(x,y,vga):word : lit la couleur d'un pixel

Exercices

Ecrire un programme qui affiche le dessin suivant :



Les nombres entre parenthèses sont les coordonnées des sommets.

Ecrire une fonction qui permet de tracer un rectangle avec comme paramètres les coordonnées du sommet supérieur gauche, la longueur, la largeur et la couleur du trait. L’utiliser pour tracer 4 rectangles de couleurs différentes.

Ecrire Ecrire une fonction qui permet de tracer un rectangle plein avec comme paramètres les coordonnées du sommet supérieur gauche, la longueur, la largeur et la couleur du remplissage. L’utiliser pour tracer 4 rectangles de couleurs différentes.