Introduction aux graphiques
GW-Basic, utilisé par PC-Basic
Programme avec Graphique et Texte
GW-BASIC a un certain nombre d'options graphiques. Avant de vraiment plonger dans les programmes à thème graphique, lancez INTROGR.BAS pour voir les bases.
Il est préférable d'examiner le code par segments.
En effet, INTROGR.BAS est un diaporama (légèrement interactif) de quelques manipulations graphiques de base.
Immédiatement, l'écran est réglé sur ÉCRAN 0, un mode texte par défaut. Cependant, l'utilisateur est invité à choisir l'écran—ÉCRAN 7 (graphiques à faible résolution) ou ÉCRAN 9 (graphiques à plus haute résolution)—sur lequel exécuter le diaporama.
Faites attention au nombre maximum de pixels sur chaque ligne (donnée par MAXX) et colonne (donnée par MAXY) dans les lignes 5 et 6. Bien que ces deux écrans ne soient pas les deux seuls modes graphiques disponibles, ils sont de loin les plus utilisés dans les programmes graphiques de la section Programme avec Graphique et Texte.
1 REM INTROGR.BAS
2 KEY
OFF:SCREEN 9:SCREEN 0:COLOR 15,0:CLS
3 PRINT "INTRODUCTION TO BASIC GRAPHICS"
4 INPUT "SCREEN 7 OR 9";SCR
5 IF SCR=7 THEN MAXX=320:MAXY=200
6 IF SCR=9
THEN MAXX=640:MAXY=350
7 IF SCR<7 OR SCR>9 THEN 2
La première démo : un point bleu, placé par l'instruction PSET, clignote rapidement à travers chaque pixel disponible de l'espace de l'écran.
À chaque fois que le point bleu est placé, l'instruction PRESET, après une courte PAUSE, le supprime. En appuyant sur les touches + ou -, vous pouvez faire défiler les couleurs disponibles pour le point (il y en a quinze).
10 SCREEN SCR:COLOR 15,0:CLS
11 'VOIR UN POINT BLEU SUR L'ÉCRAN
13 FOR Y=1 TO MAXY
15 FOR X=l TO MAXX
20 PSET(X,Y)
21 I$=INKEY$
22 IF I$=CHR$(27) THEN 50
24 IF I$="+" THEN
C=C+1
25 IF I$="-" THEN C=C-1
26 IF C<1 THEN C=15
27 IF C>15 THEN C=1
29 FOR PAUSE=1 TO 50:NEXT PAUSE
30 PRESET(X,Y)
31 LOCATE 25,1:PRINT MAXX;"
by ";MAXY
32 LOCATE 25,22:PRINT"(";X;",";Y;"),";C
35 NEXT X
40 NEXT Y
Démo suivante : un cercle grandit et rétrécit et grandit et rétrécit et...
L'instruction CIRCLE gère le gros du travail ici, en fonction d'une boucle FOR/NEXT pour changer SIZE. Comme pour le point mobile, appuyer sur + ou - change la couleur du cercle.
50 CLS
60 'LA FONCTION
CERCLE - PLUS GRAND ET PLUS PETIT
65 C=9
68 FOR LOOP=1 TO 10
70 FOR
SIZE=1 TO 50
80 CIRCLE(100,100),SIZE,C
81 I$=INKEY$
82 IF I$=CHR$(27)
THEN 200
84 IF I$="+" THEN C=C+1
85 IF I$="-" THEN C=C-1
86 IF C<1 THEN
C=15
87 IF O15 THEN C=1
90 FOR PAUSE= 1 TO 50:NEXT PAUSE
100 CLS
110
NEXT SIZE
120 FOR SIZE=50 TO 1 STEP -1
130 CIRCLE(100,100),SIZE,C
141
I$=INKEY$
142 IF I$=CHR$(27) THEN 200
143 IF I$="+" THEN C=C+1
144 IF
I$="-" THEN C=C-1
145 IF C<1 THEN C=15
147 IF C>15 THEN C=1
150 FOR
PAUSE=1 TO 50:NEXT PAUSE
160 CLS
170 NEXT SIZE
180 NEXT LOOP
La troisième démo se concentre sur l'instruction DRAW qui, sans surprise, permet de tracer des lignes à l'écran.
Quelle que soit la position à laquelle le curseur commence - l'instruction PSET ci-dessous centre le curseur sur (50,50) - des lignes sont construites dans chacune des huit directions possibles, toutes séparées par des angles de quarante-cinq degrés.
Cela présente la moindre ressemblance avec la célèbre tortue du langage de programmation LOGO.
Une fois qu'un octogone bleu a été esquissé, l'instruction PAINT remplit la zone fermée d'une seule couleur, tant que la bordure de la forme est d'une couleur uniforme (dans ce cas, la bordure est de couleur 9 : c'est-à-dire bleu).
200 'L'instruction DRAW
205
CLS
210 PRINT "DRAW peut se déplacer vers le haut, le clown, la gauche, la
droite ou en diagonale:"
215 PSET(50,50),9
220 DRAW"U10 E10 R10 F10 D10
G10 L10 H10 U10"
239 LOCATE 15,1:PRINT "Appuyez <ESC> pour continuer..."
240 IF INKEY$=CHR$(27) THEN GOTO 241 ELSE GOTO 240
241 LOCATE 20,1:PRINT "Et
PAINT remplira un espace clos."
242 PAINT(55,51),15,9
244 FOR PAUSE=1 TO
15000:NEXT PAUSE
250 CLS
Enfin, une démonstration d'une fonctionnalité DRAW plus robuste : l'instruction DRAW peut construire des lignes vers des coordonnées spécifiques, plutôt que simplement dans huit directions prédéfinies (de la même manière que l'instruction LINE, que nous utiliserons dans des programmes ultérieurs).
260 PRINT "DRAW peut également
se déplacer vers des points spécifiques"
270 PRINT "sur l'écran, plutôt que
de simplement déplacer"
272 PRINT "dans huit directions prédéfinies."
275
PSET(55,55),9
280 DRAW"M100,110 M200,60 M110,170 M20,80"
283 LOCATE
19,1:PRINT "Appuyez <ESC> pour terminer."
285 IF INKEY$=CHR$(27) THEN GOTO
290 ELSE GOTO 285
290 CLS:END
Bien qu'il existe un certain nombre d'autres énoncés graphiques simples qui auraient pu être présentés ici, il était important de se concentrer sur ceux qui sont le plus utilisés dans les prochaines sections.