IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours de Turbo Pascal 7


précédentsommairesuivant

Chapitre 11 - Graphismes

Les instructions qui vont suivre nécessitent l'unité Graph. Pour créer des graphismes, il faut tout d'abord initialiser le mode graphique à l'aide de InitGraph. Par exemple, pour un écran VGA 640x480x16 :

 
Sélectionnez
InitGraph (VGA,VGAHi,'c:\bp\bgi');

Attention : le chemin du répertoire BGI peut changer d'une machine à l'autre.

Ici, la valeur VGA correspond au pilote graphique, VGAHi au mode graphique; on obtient en général une résolution de 640x480 pour 16 couleurs. En fin de programme, afin de retourner en mode texte, il faut exécuter la procédure CloseGraph.

Pour une autodétection du mode graphique maximal supporté par le système, si celui-ci est inférieur à 640x480x16 (qui est la résolution maximale de l'unité Graph de Turbo Pascal 7.0), initialisez l'unité Graph de la manière suivante :

 
Sélectionnez
Uses Graph;
Var Pilote, Mode : Integer;
BEGIN
  Pilote := Detect;
  InitGraph(Pilote, Mode, 'c:\turbo7\bgi');
  ...
  CloseGraph;
END.

Constantes de pilote et de mode graphique :

Pilotes graphiques

Pilote

Valeur

CGA

1

EGA

9

VGA

3

Modes graphiques

Résolution

Valeur

640x200

0

640x320

1

640x480

2

Ayez toujours en tête que la résolution de l'écran graphique, en Turbo Pascal, est au maximum de 640x480 pixels et de 16 couleurs.

À noter que l'origine de l'écran graphique se trouve en haut à gauche de l'écran, c'est-à-dire que le point de coordonnées (0,0) est le premier pixel de l'écran, ainsi, le point à l'opposé qui est de coordonnées (639, 479) se trouve en bas à droite.

Pour un affichage de meilleure résolution, fabriquez vous-même une unité spécifique (voir chapitre 14 sur les unités). Souvent, dans ce genre d'unité censée permettre de faire plus que permis avec les unités de base, le code est en Assembleur…

 
Sélectionnez
SetColor (couleur);

Cette instruction permet de sélectionner une couleur (voir tableau ci-après) qui affectera toutes les commandes graphiques. Il vous suffit d'entrer en paramètre la couleur de votre choix.

Codes des couleurs (valables aussi pour MS-DOS)

Valeur

Constante

Couleur

0

Black

Noir

1

Blue

Bleu

2

Green

Vert foncé

3

Cyan

Cyan foncé

4

Red

Rouge

5

Magenta

Mauve foncé

6

Brown

Marron

7

LightGray

Gris clair

8

DarkGray

Gris foncé

9

LightBlue

Bleu flou

10

LightGreen

Vert clair

11

LightCyan

Cyan clair

12

LightRed

Rouge clair

13

LightMagenta

Mauve clair

14

Yellow

Jaune

15

White

Blanc

 
Sélectionnez
SetFillStyle (style,couleur);

Sélectionne un motif de remplissage spécifique (voir tableau ci-après) ainsi qu'une couleur parmi 16. Ces paramètres ne seront utilisés que par quelques instructions, dont celle qui suit (Bar). Il vous suffit d'entrer en paramètre le motif de votre choix.

Motifs de remplissage

Valeur

Constante

Rendu

0

EmptyFill

Couleur du fond

1

SolidFill

Couleur du tracé

2

LineFill

Lignes horizontales

3

LtSlashFill

Barres obliques (/)

4

SlashFill

Barres obliques (/) épaisses

5

BkSlashFill

Antibarres (\) épaisses

6

LtBkSlashFill

Antibarres (\)

7

HatchFill

Hachures fines

8

XHatchFill

Hachures épaisses

9

InterLeaveFill

Croisillons

10

WideDotFill

Points aérés

11

CloseDotFill

Points serrés

12

UsesFill

Motif défini par le programmeur

 
Sélectionnez
FloodFill (x,y,border);

Remplit une surface fermée identifiée par sa couleur de bordure : border à partir du point de coordonnées (x,y). La couleur de remplissage sera celle choisie par un SetColor ou un SetFillStyle.

 
Sélectionnez
Bar (x1,y1,x2,y2);

Trace un rectangle plein aux coordonnées indiquées.

 
Sélectionnez
Bar3d (x1,y1,x2,y2,z,TopOn);

Trace un parallélépipède aux coordonnées indiquées et de profondeur z. TopOn est une constante signifiant que les lignes de perspectives supérieures sont activées (pour les cacher : TopOff).

 
Sélectionnez
SetLineStyle (style,$c3,épaisseur);

Sélectionne un style et une épaisseur de line utilisés par les instructions graphiques de base : Line, Rectangle, Circle (seulement l'épaisseur). Voir les tableaux suivants pour les valeurs possibles. Il vous suffit d'entrer en paramètre le style et l'épaisseur de votre choix.

Styles de ligne

Valeur

Constante

Rendu

0

SolidLn

Ligne pleine

1

DottedLn

Ligne pointillée

2

CenterLn

Ligne mixte

3

DashedLn

Ligne tiretée

4

UseBitLn

Motif défini par le programmeur

Épaisseurs de ligne

Valeur

Constante

Rendu

1

NormWidth

Trait normal

3

ThickWidth

Trait épais

 
Sélectionnez
Line (x1,y1,x2,y2);

Trace une ligne débutant au point de coordonnées (x1,y1) et se terminant au point de coordonnées (x2,y2).

 
Sélectionnez
LineTo (x,y);

Trace une ligne à partir de la position courante du curseur graphique, jusqu'aux coordonnées x et y spécifiées.

 
Sélectionnez
LineRel (deltaX,deltaY);

Trace une ligne à partir de la position courante du curseur graphique, jusqu'aux coordonnées calculées à partir des pas de variation deltaX et deltaY spécifiés.
À noter qu'il peut y avoir équivalence entre diverses combinaisons des trois dernières instructions.

 
Sélectionnez
MoveTo (x,y);

Positionne le pointeur graphique aux coordonnées x et y spécifiées.

 
Sélectionnez
MoveRel (deltaX,deltaY);

Déplace relativement le pointeur graphique depuis sa position courante jusqu'aux coordonnées calculées à partir des pas de variation deltaX et deltaY.

 
Sélectionnez
Rectangle (x1,y1,x2,y2);

Trace un rectangle de coin haut-gauche de coordonnées (x1,y1) et de coin bas-droite de coordonnées (x2,y2).

 
Sélectionnez
Circle (x,y,rayon );

Trace un cercle de coordonnées et de rayon spécifiés.

 
Sélectionnez
Ellipse (x,y,angle1,angle2,axe1,axe2);

Trace une ellipse de centre (x,y) de largeur axe1 et de hauteur axe2. On peut ne tracer qu'une partie de l'ellipse en spécifiant l'angle de départ angle1 et l'angle d'arrivée angle2, exprimés en degrés et dans le sens trigonométrique. Pour tracer une ellipse complète : angle1 = 0 et angle2 = 360.

 
Sélectionnez
Arc (x,y,angle1,angle2,rayon);

Trace un arc de cercle de centre (x,y) et de rayon rayon. On peut tracer un arc en spécifiant l'angle de départ angle1 et l'angle d'arrivée angle2, exprimés en degrés et dans le sens trigonométrique. Pour tracer un arc maximum, c'est-à-dire un cercle : angle1 = 0 et angle2 = 360.

 
Sélectionnez
Program Coquille;
Uses Graph;
Var r, a, Mode, Pilote : Integer;
BEGIN
  Mode := Detect ;
  InitGraph(Pilote,Mode,'c:\bp\bgi');
  SetColor(Yellow);
  r := 0;
  repeat
    Inc(r,8);
    Arc(GetMaxX Div 3,GetMaxY Div 2,0,r,180 - (r div 2));
  until r > 360;
  ReadLn;
  CloseGraph;
END.

Ce programme dessine à l'écran une série d'arcs de cercle afin de former la coquille d'un mollusque. Ce programme montre également comment il est simple d'introduire des fonctions et des opérateurs au sein d'une ligne de commande de procédure paramétrée (Arc();).

 
Sélectionnez
GetPixel (x,y);

Retourne la couleur du pixel aux coordonnées considérées.

 
Sélectionnez
PutPixel (x,x,couleur);

Affiche un pixel de couleur choisie aux coordonnées spécifiées.

 
Sélectionnez
GetMaxX;

Retourne la valeur maximale d'une coordonnée sur l'axe des x.

 
Sélectionnez
GetMaxY;

Retourne la valeur maximale d'une coordonnée sur l'axe des y.

 
Sélectionnez
GetMaxColor;

Retourne le nombre total de couleurs disponibles.

 
Sélectionnez
GetMaxMode;

Retourne la plus grande valeur du mode graphique supporté par le pilote courant.

 
Sélectionnez
SetTextStyle (fonte,orientation,taille );

Définit les paramètres d'affichage du texte qui suivra (avec la commande suivante). Il vous suffit d'entrer en paramètres la fonte et l'orientation voulues.

Note : Il est possible d'utiliser un très grand nombre de fontes supplémentaires, sous la forme de fichiers au format CHR qui doivent être placés dans le répertoire /BIN de Turbo Pascal 7.0.

Différentes fontes de Turbo Pascal 7.0

Valeur

Fonte

0

DefaultFont

1

TriplexFont

2

SmallFont

3

SansSerifFont

4

GothicFont

Orientations de fonte

Valeur

Constante

Signification

0

HorizDir

Orientation horizontale

1

VertDir

Orientation verticale

 
Sélectionnez
OutText (chaine);

Affiche du texte à la position actuelle du curseur.

 
Sélectionnez
OutTextXY (x,y,chaine);

Permet d'afficher du texte aux coordonnées voulues.

 
Sélectionnez
ClearDevice;
ClearViewPort;

Effacent le contenu de l'écran graphique.

 
Sélectionnez
CloseGraph;
RestoreCrtMode;

Ferment le mode graphique pour retourner à l'affichage MS-DOS habituel.

 
Sélectionnez
SetGraphMode (GetGraphMode);

Retourne au mode graphique de la procédure initialisation.


précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2001-2013 Hugo Etievant. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.