Tracer la ligne quelque part

GW-BASIC  (PC-BASIC)

Initiation au langage Basic

Vous savez déjà comment créer des lignes, des ellipses et des boîtes. Maintenant, aimeriez-vous apprendre un raccourci pour faire certaines de ces choses ?

Le raccourci est DRAW, qui vous permet de tracer une ligne (ou une série de lignes) en spécifiant la direction, l'angle et la couleur, le tout dans la même ligne de programme !

Voici la syntaxe de DRAW :

Commandes de mouvement :

Chacune des commandes de mouvement suivantes commence le mouvement à partir de la position graphique actuelle. Il s'agit généralement de la coordonnée du dernier point graphique tracé avec une autre commande GML, LINE ou PSET.

La position actuelle est par défaut au centre de l'écran (160,100) en résolution moyenne SCREEN 7 ; (320,175) en haute résolution SCREEN 9 lorsqu'un programme est exécuté.

Les commandes de mouvement se déplacent sur une distance de facteur d'échelle *n, où la valeur par défaut pour n est 1 ; ainsi, ils se déplacent d'un point si n est omis et que le facteur d'échelle par défaut est utilisé.

Mouvements de commande

Un haut
Dn vers le bas
Ln gauche
R à droite
En diagonale vers le haut et vers la droite
Fn en diagonale vers le bas et vers la droite
Gn en diagonale vers le bas et vers la gauche
Hn en diagonale vers le haut et vers la gauche

Cette commande se déplace comme spécifié par l'argument suivant :

Mx,y Déplacement absolu ou relatif. Si x est précédé d'un + ou d'un -, x et y sont ajoutés à la position graphique courante et reliés à la position courante par une ligne. Sinon, une ligne est tracée au point x, y à partir de la position actuelle.

Les commandes de préfixe suivantes peuvent précéder n'importe laquelle des commandes de mouvement ci-dessus :

B Déplace, mais ne trace aucun point.
N Déplace, mais revient à la position d'origine lorsque vous avez terminé.

Plus tôt, vous avez appris à créer une boîte à l'aide de LINE. Pour ce faire, vous avez peut-être dû effectuer des calculs difficiles avec la feuille de travail de l'écran graphique pour localiser les points de départ et d'arrivée nécessaires.

Avec DRAW, vous devez localiser uniquement le point de départ, puis indiquer à l'ordinateur dans quelle direction dessiner et jusqu'où le faire.

Si vous omettez le point de départ, l'ordinateur démarre à la dernière position DRAW ou, si vous n'avez pas encore utilisé DRAW, au centre de l'écran.

DRAW "BM128,96;U25;R25;D25;L25"

Ce programme a probablement remplacé votre chien comme votre meilleur ami.

5 SCREEN 7
10 CLS
25 DRAW "BM128,96;U25;R25;D25;L25"
30 GOTO 30

Pour rendre le programme plus facile à lire, on a séparé les instructions de mouvement avec un point-virgule (;). Vous n'avez pas besoin de le faire. Vous devez cependant, séparez toujours les coordonnées (x,y) par une virgule.

Presto! Pouvez-vous deviner pourquoi le coin inférieur gauche du carré est à (128,96) ?

Regardez les deux premiers chiffres à l'intérieur des guillemets.

La commande de mouvement, M, indique à l'ordinateur quel point commencer à dessiner pour plus tard.

M x,y indique à l'ordinateur à quel point commencer à dessiner:
x est la position horizontale (0 à 255).
y est la position verticale (0 à 191).

Remarque : Toujours préfacer M par la lettre B ; si vous ne le faites pas, des lignes indésirables apparaissent.

B Déplace, mais ne trace aucun point.

Le programme ci-dessus indique à l'ordinateur de commencer à dessiner à (128,96), de dessiner (U) 25 points vers le haut, d(R) 25 points de plus vers la droite, de descendre (D) 25 points de plus et enfin (L) 25 points vers la gauche.

Remarque : Si vous omettez la longueur de la ligne, l'ordinateur utilise 1 comme longueur.

Placer le carré sur le bord
(Lignes diagonales)

Au lieu de tracer des lignes horizontales et verticales, placez le carré sur l'un de ses coins. Pour ce faire, remplacez E, F, C et H par U, R, l et D à la ligne 25 :

25 DRAW "BM128,96;E25;F25;G25;H25"

Ce TIRAGE commence également à (128,96). Au lieu de monter, cependant, la première ligne s'incline à 45 degrés; l'ordinateur dessine les 3 lignes suivantes selon leurs angles désignés.

Programme faites-le vous même

Vous savez déjà que votre ordinateur est la vedette du spectacle, mais pouvez-vous le prouver en dessinant une étoile ? Utilisez les commandes de mouvement DRAW pour les lignes perpendiculaires et diagonales.

5 SCREEN 7
10 CLS
30 DRAW "BM68,116;E20;BE20;E20;F20;BF20;F20;L40;BL40;L40;BU40;R40;BR40; R40;G20;BG20;G20;H20;BH20;H20;BM128,96;NU40;ND40;NE20;NF20;NG20;NH20;Nl40;R40"
40 GOTO 40

On peut écrire la ligne 30 sur deux lignes:

5 SCREEN 7
10 CLS
20 DRAW "BM68,116;E20;BE20;E20;F20;BF20;F20;L40;BL40;L40;BU40;R40;BR40;R40;G20;BG20;G20;H20;BH20;H20"
30 DRAW "BM128,96;NU40;ND40;NE20;NF20;NG20;NH20;Nl40;R40"
40 GOTO 40

Absolu M y Relatif M

Supposons que vous dessiniez un carré et que vous vouliez en dessiner un autre à proximité.

Vous savez exactement à quelle distance vous voulez placer le deuxième carré, mais vous ne voulez pas avoir à localiser les coordonnées (x,y).

Une autre forme de la commande M consiste à spécifier un mouvement "relatif" au lieu d'un mouvement "absolu". Jusqu'à présent, vous avez utilisé le mouvement absolu ; vous avez spécifié des points en fonction de leurs coordonnées (x,y).

En utilisant le mouvement relatif, vous pouvez spécifier des points par rapport au point courant le dernier point dessiné!.

Voici la syntaxe pour mouvement relatif :

M sign x-offset, y-offset vous permet de spécifier des points relatifs à l'actuel point. point h-offset est la distance pour se déplacer horizontalement à partir de la position actuelle.

Si vous le faites précéder d'un signe plus (+), la position h est incrémentée de la valeur spécifiée.

Si vous la faites précéder d'un signe moins (-), la position h est décrémentée.

y-offset est la distance à parcourir verticalement à partir du courant. Si vous faites précéder y-offset d'un signe plus (+) ou si vous omettez le signe, la position s'incrémente de la quantité spécifiée. Si vous la précédez avec un signe moins (-), la position y décrémente.

Par exemple. si vous souhaitez créer la deuxième case à une position relative à celle ou à la première case dans le programme "Carré" (redéfini), vous pouvez ajouter cette ligne :

30 DRAW "BM+15,15;U25;R25;D25;L25"

5 SCREEN 7
10 CLS
25 DRAW "BM128,96;U25;R25;D25;L25"
30 DRAW "BM+15,15;U25;R25;D25;L25"
40 GOTO 40

Lorsque l'ordinateur exécute la ligne 30, la position de tirage actuelle est (128,96), qui est la dernière position de DRAW de la ligne 25. Ainsi, le coin inférieur gauche de la nouvelle case est à (128+15,96+15) ou (143,111).

Modifiez la ligne 30 comme suit :

30 DRAW "BM+15,-15;U25;R25;D25;L25"

Exécutez le programme. Le point de départ du nouveau carré est (128 + 15,96-15) ou (143,81).

Programme faites-le vous même

Après toute cette activité intense, vous êtes probablement prêt à vous rafraîchir. alors pourquoi ne pas utiliser DRAW pour créer un glaçon (un cube de glace) ?

Vous pouvez généraliser le cube entier en utilisant DRAW. Ou vous pouvez incorporer quelques commandes LINE dans le programme. Essayez d'utiliser à la fois le mouvement absolu et relatif.

10 SCREEN 7
20 CLS
25 DRAW "BM40,80;U40R40D40L40"
30 DRAW "BM+20,20;U40;R40;D40;L40"
40 LINE (60,100)-(40,80),15
50 LINE (60,60)-(40,40),15
60 LINE (100,60)-(80,40),15
70 LINE (100,100)-(80,80),15
80 GOTO 80

Faire pencher la balance

Que se passe-t-il si les figures que vous dessinez sont trop grandes ou trop petites ?

La solution est simple. Votre ordinateur possède une fonction intégrée qui vous permet de « redimensionner » (vers le haut ou vers le bas) tout affichage généré par DRAW. Tout ce que vous avez à faire est d'utiliser la commande Sx dans la chaîne.

Lorsque vous utilisez l'option de réduction, l'ordinateur arrondit la longueur de ligne résultante au nombre entier le plus proche. si ce n'est pas déjà un nombre entier.

Sx définit le facteur d'échelle. x peut être compris entre 1 et 255. x est divisé par 4 pour obtenir le facteur d'échelle. Le facteur d'échelle est multiplié par les distances données avec les commandes U, D, L, R, E, F, G, H ou M relatives pour obtenir la distance réelle parcourue. La valeur par défaut pour S est 4.

1 = échelle 1/4
2 = échelle 2/4
3 = échelle 3/4
4 = 4/4 pleine échelle
5 = 5/4 (échelle 125 %)
8 = échelle 8/4 (double)
12 = 12/4 (triple) échelle
elc.

Si vous omettez x, l'ordinateur utilise 4 (4/4 = I).

Après avoir entré une commande Sx, l'ordinateur met à l'échelle toutes les commandes de mouvement absolu et relatif en conséquence jusqu'à ce que vous en saisissiez une autre.

Faites en sorte que vos "Lignes" raffinées dessinent à nouveau un seul carré. Pour ce faire, supprimez la ligne 30 et modifiez la ligne 25 comme suit :

25 DRAW "S2;BM128,96;U25;R25;D25;L25"

5 SCREEN 7
10 CLS
25 DRAW "S2;BM128,96;U25;R25;D25;L25"
40 GOTO 40

Exécutez le programme.

Le carré dans le coin inférieur gauche doit être la moitié de la taille que vous avez spécifiée.

Pour voir à quel point un carré peut être petit ou grand, exécutez le programme suivant :

5 SCREEN 9
10 CLS
20 FOR SCALE = 1 TO 62
30 S$ = "S" + STR$(SCALE) + ";"
35 DRAW S$ + "BM10,340U20R20D20L20"
40 NEXT SCALE
50 GOTO 50

Ne commettez pas l'erreur de penser que le plus petit carré est celui spécifié à la ligne 35. Celui que nous avons spécifié est le quatrième à partir du bord Pour SCALE=4.

Colorie-moi

L'option C de DRAW vous permet de spécifier la couleur d'une ligne particulière.

Cn Définir la couleur n. Voir les instructions SCREEN, COLOR, PALETTE pour des discussions sur les couleurs, les nombres et les attributs valides.

Tout d'abord, tapez le programme "Lignes":

5 SCREEN 7
10 CLS
30 DRAW "BM128,96;U25;R25;D25;L25"
40 GOTO 40

Revenez à la pleine échelle soit en remplaçant 52 par 54, soit en supprimant 52. Ensuite, juste à l'intérieur du premier jeu de guillemets de la ligne 30, insérez :

C6

30 DRAW "C6;BM128,96;U25;R25;D25;L25"

Exécutez le programme. Affiche-t-il un carré Marron sur un fond noir ?

Remplacez le C6 (dans la ligne 30 du programme) par C9 et exécutez le programme. Le carré est-il devenu Bleu clair?

C doit prendre la forme suivante :

Cx permet de spécifier la couleur d'une ligne x est le code couleur (0 à 15). Si vous ometez x, l'ordinateur utilise la couleur de premier plan.

Vous pouvez insérer Cx n'importe où dans l'instruction DRAW. Toutes les actions qui suivent sont de la couleur que vous spécifiez. Par exemple, modifiez la ligne 30:

30 DRAW "C6;BM128,96;U25;C9;R25;C4;D25;L25"

Exécutez le programme. Le programme affiche un carré de 3 couleurs.

Si vous souhaitez effacer une ligne, tracez une autre ligne par-dessus en utilisant la couleur d'arrière-plan.

Quel est votre angle ?

Une autre option disponible avec DRAW est A. Cette option vous permet de spécifier l'angle auquel une ligne doit être tracée. Après avoir inclus A dans la commande DRAW, l'ordinateur dessine toutes les lignes suivantes avec le déplacement angulaire spécifié par Ax jusqu'à ce que vous spécifiiez le contraire.

Votre programme devrait être :

5 SCREEN 7
10 CLS
30 DRAW "C6;BM128,96;U25;C9;R25;C4;D25;L25"
40 GOTO 40

Voici la syntaxe de la commande A :

Ax vous permet de spécifier l'angle d'une ligne

x est le code d'angle (0 à 3). Tous les angles sont mesurés dans le sens des aiguilles d'une montre.

0 = 0 degrés
1 = 90 degrés
2 = 180 degrés
3 = 270 degrés

Si vous omettez Ax, l'ordinateur utilise A0.

Pour illustrer cela, modifiez la ligne 30 du programme:

30 DRAW "A0;C6;BM128,96;U25"

Exécutez le programme. Votre écran affiche une ligne verticale de 25 points de long.

Changez maintenant la ligne 30 :

30 DRAW "A1;C6;BM128,96;U25"

Exécutez le programme. La ligne est maintenant horizontale.

Si vous voulez que la prochaine ligne que vous dessinez soit une ligne "blanche" ou invisible, incluez l'option B.

Par exemple, disons que vous dessinez des lettres de l'alphabet et que vous êtes prêt pour la lettre C qui n'est rien d'autre qu'un carré avec le côté droit vide.

Modifiez la ligne 30 comme suit pour que le programme génère un tel chiffre :

30 DRAW "A1;C6;BM128,96;U25; B; C9;R25;C4;D25;L25"

Exécutez le programme. N'oubliez pas que seule la ligne suivant immédiatement le B est vide.

Exécutez le programme. N'oubliez pas que seule la ligne suivant immédiatement le B est vide.

Programme faites-le vous même

Imprimez votre nom sur l'écran en utilisant DRAW. Cela signifie que vous devrez rester dans l'écran graphique. Bien sûr, il serait plus facile d'écrire votre nom sur l'écran de texte, mais vous ne pouvez pas avoir du "vrai" texte et des graphiques en même temps.

10 SCREEN 7
20 CLS
25 DRAW "BM50,50;L30D30R30D30L30" 'S
30 DRAW "BM90,50D60R30U60" 'U
40 DRAW "BM160,50D60R30BU60L30D30R30" 'E
50 GOTO 50

Quoi! Plus d'options?

Une autre des nombreuses fonctionnalités de DRAW est N, l'option "pas de mise à jour". N indique à l'ordinateur de revenir à sa position d'origine (actuelle) après avoir tracé la ligne suivante. Pour voir cela, modifiez la ligne 30:

30 DRAW "C6;BM128,96;N;U25;N;C9;N;R25;C4;N;D25;N;L25"

Exécutez le programme. L'ordinateur trace une ligne de 25 points vers le haut à partir de (128,96}. Il revient ensuite à (128,96), trace la ligne suivante, revient, trace la suivante, et ainsi de suite.

En conséquence, quatre lignes partent du centre de l'écran, chacune dans une direction différente (haut, droite,bas et gauche).

Programme faites-le vous même

En utilisant l'option N de DRAW (et CIRCLE), demandez au compilateur de dessiner un gâteau de 8 pièces. Une fois que vous avez fait cela, découpez la tranche de tarte et mettez-la de côté.

10 SCREEN 7
20 CLS
30 DRAW "BM98,96;NU80;NE56;NR80;NF56;ND80;NG56;NL80;NH56"
40 CIRCLE (98,96),80,1,,,1
50 CIRCLE (135,110),80,1,5.45,0 'Les angles sont en radian
60 LINE (135,110)-(190,160),15
70 LINE (135,110)-(213,110),15
80 GOTO 80

Constantes de chaîne vs Variables de chaîne

Comme indiqué précédemment, la chaîne qui suit DRAW peut être soit une constante, soit dans les exemples précédents, soit une variable.

Pour utiliser une variable de chaîne, faites précéder l'instruction DRAW d'une ligne de programme qui identifie la variable en tant que chaîne ; puis remplacez la chaîne dans DRAW.

Par exemple, ajoutez la ligne 25 et modifiez la ligne 30 comme suit :

5 SCREEN 7
10 CLS
25 A$ = "C6;BM128,96;U25;C9;R25;C4;D25;L25"
30 DRAW A$
40 GOTO 40

Exécutez le programme. L'ordinateur affiche une case de (25 x 25) dont le coin inférieur gauche est au centre de l'écran.

GW-BASIC offre une variante à cela, appelée l'action "exécuter" (X).

Pendant que vous exécutez une routine DRAW, l'action d'exécution vous permet d'exécuter une autre chaîne DRAW, puis de revenir et de terminer la première opération. Pour ce faire, laissez la ligne 25 telle quelle afin qu'elle définisse A$ ; puis changez la ligne 30. Les deux lignes sont:

5 SCREEN 7
10 CLS
25 A$ = "C6;BM128,96;U25;C9;R25;C4;D25;L25"
30 DRAW "BM95,50;U25;R25;XA$;D25;L25"
40 GOTO 40

Exécutez le programme. L'ordinateur commence à tracer à (95,50) une ligne qui s'étend vers le haut (U25) puis vers la droite (R25). II exécute ensuite A$ de manière à dessiner un carré de 25 x 25, en commençant par al (128,96). Après avoir exécuté A$, il revient à la chaîne d'origine (actuelle) et termine son exécution (D25,125).

Programme faites-le vous même

Faites-le vous-même ci-haut montre que vous pouvez simuler du texte (lettres) sur l'écran graphique en dessinant les lettres. Utilisez DRAW pour créer les 26 lettres de l'alphabet. Stockez les commandes DRAW dans des chaînes. Utilisez ensuite l'action "exécuter" (X) pour organiser les lettres en mots.

Voici un exemple ALPHA1.BAS

Avez-vous toujours votre maison (Voir Le gros pinceau) ? Si c'est le cas, chargez à nouveau le programme et utilisez DRAW pour ouvrir et fermer la porte avant.

Voici un exemple MAISON3.BAS

Voir aussi RID.BAS

 

 

 

 

 

 

 

Recherche personnalisée