Introduction aux graphiques

GW-Basic, utilisé par PC-Basic

Programme avec Graphique et Texte

PC-BASIC

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.

 

 

 

 

 

 

 

Recherche personnalisée