PLOT
DESCRIPTION.
L'instruction PLOT permet de créer des tracés et des figures spécifiques, avec des coordonnées absolues.
L'instruction PLOT BY permet de créer des tracés et des figures spécifiques, avec des coordonnées relatives.
SYNTAXE.
PLOT mode , abscisse , ordonnee
PLOT mode , horizontal , vertical
PLOT abscisse , ordonnee
PLOT BY horizontal , vertical
REMARQUES.
- mode, est un nombre entier compris entre 0 et 253 qui définit le type de tracé à dessiner. mode peut être omis, dans ce cas :
- PLOT abscisse , ordonnee correspond de PLOT 69 , abscisse , ordonnee et ;
- PLOT BY horizontal , vertical correspond de PLOT 65 , horizontal , vertical.
Ces deux formes affichent un point aux coordonnées du point de référence.
abscisse, ordonnee, horizontal et vertical doivent être des nombres entiers compris entre −32768 et +32767.
abscisse précise l'abscisse réelle (absolue) du point de référence.
ordonnee précise l'ordonnée réelle (absolue) point de référence.
horizontal est le décalage horizontal, en pixels, de l'abscisse du curseur graphique. Si horizontal est :
- positif, l'abscisse du curseur graphique se déplace vers la droite (augmente) ;
- 0, l'abscisse du curseur graphique ne change pas ;
- négatif, l'abscisse du curseur graphique se déplace vers la gauche (diminue).
vertical est le décalage vertical, en pixels, de l'ordonnée du curseur graphique. Si vertical est :
- positif, l'ordonnée du curseur graphique se déplace vers le haut (augmente) ;
- 0, l'ordonnée du curseur graphique ne change pas ;
- négatif, l'ordonnée du curseur graphique se déplace vers le bas (diminue).
Important : Après que le tracé soit effectué, les coordonnées du point de référence du tracé deviennent celles du curseur graphique.
Rappel : Bien qu'elles cohabitent, en se chevauchant, dans la fenêtre de sortie, la surface graphique et la surface textuelle sont bien 2 surfaces différentes. A l'initialisation d'une nouvelle fenêtre de sortie, les surfaces textuelle et graphique s'étendent sur la totalité de la fenêtre de sortie du BBC BASIC, mais leur taille et leur position peuvent être modifiées, indépendamment l'une de l'autre, et elle pourront être restaurées à leur valeur initiale avec la commande VDU 26.
Rappel : Les dessins et les tracés ne sont affichés qu'à l'intérieur de la surface graphique. Tous points à afficher ayant des coordonnées en dehors de celle-ci seront ignorés, même s'ils sont à l'intérieur de la fenêtre de sortie. Voir la rubrique dessins et graphismes pour plus de détails.
Par défaut, tous les tracés l'épaisseur des traits est de 1 pixel. Pour modifier cette épaisseur, on doit utiliser la commande VDU 23 , 23 , epaisseur ou VDU 23 , 23 , epaisseur , 0 , 0 , 0, où epaisseur est un nombre entier définissant la nouvelle épaisseur des tracés à venir. Voir la commande VDU pour plus de détails.
Rappel : Avec BBC BASIC SDL 2.0 une points graphique corresponds en réalité à deux pixels. Par exemple, en MODE 8, la fenêtre de sortie a une surface graphique de 640 x 512 points graphiques soit une surface d'image de 1280 x 1024 pixels. Comme les valeurs retournées par certaines variables système sont exprimées en points graphiques, il faudra les multiplier par 2 pour obtenir le nombre de pixels équivalents. Pour pallier à cet inconvénient, il est fortement recommandé de n'utiliser que des valeurs pairs pour désigner les coordonnées des tracés et des dessins.
La qualité des tracés et des couleurs dépendent beaucoup du MODE utilisé, mais aussi du matériel et de l'environnement : Linux, Windows, navigateur, ... sur lequel le programme est exécuté. Dans certains cas, des tracés, des figures, voire des coloriages peuvent ne pas être affichés, sans qu'une erreur de script en soit responsable.
À noter que certains modes correspondent à des instructions du BBC BASIC, dans ces cas on préférera utiliser les instructions spécifiques plutôt que le mot clé PLOT. Les modes :
- 0 correspond à l'instruction MOVE BY ;
- 1 correspond à l'instruction DRAW BY ;
- 4 correspond à l'instruction MOVE ;
- 5 correspond à l'instruction DRAW ;
- de 96 à 103 correspondent aux instructions RECTANGLE et/ou RECTANGLE FILL ;
- de 128 à 143 correspondent au mot clé FILL associé à certaines instructions de dessin ;
- de 144 à 147 correspondent à instruction l'instruction CIRCLE ;
- de 152 à 155 correspondent à instruction l'instruction CIRCLE FILL ;
- 185 et 189 correspondent à l'instruction RECTANGLE FILL ... TO ... ;
- 187 et 191 correspondent à l'instruction RECTANGLE ... TO ... ;
- de 192 à 199 correspondent à instruction l'instruction ELISPSE ;
- de 200 à 207 correspondent à instruction l'instruction ELISPSE FILL ;
- 249 et 253 correspondent à l'instruction RECTANGLE SWAP ... TO ....
Les modes disponibles pour l'instruction PLOT sont listés par familles ci-dessous, puis détaillés plus bas :
- modes de 0 à 7 : pour tracer des lignes continues.
- modes de 8 à 63 : pour tracer des lignes discontinues.
- modes de 64 à 71 : pour afficher des points uniques.
- modes de 72 à 79 : pour tracer des lignes horizontales sans arrière-plan.
- modes de 80 à 87 : pour dessiner des triangles pleins.
- modes de 88 à 95 : pour tracer des lignes horizontales vers l'arrière-plan à droite.
- modes de 96 à 103 : pour tracer des rectangles pleins.
- modes de 104 à 111 : pour tracer des lignes horizontales jusqu'au premier plan.
- modes de 112 à 119 : pour dessiner des parallélogrammes pleins.
- modes de 120 à 127 : pour tracer des lignes horizontales jusqu'à la droite non au premier plan.
- modes de 128 à 135 : pour colorier une zone jusqu'à non-arrière-plan.
- modes de 136 à 143 : pour colorier une zone jusqu'au premier-plan.
- modes de 144 à 151 : pour dessiner des cercles.
- modes de 152 à 159 : pour dessiner des disques.
- modes de 160 à 167 : pour tracer des arcs de cercle (lignes courbes).
- modes de 168 à 175 : pour dessiner des segments de cercle.
- modes de 176 à 183 : pour dessiner des arcs de cercle (pleins).
- modes 185 et 189 : pour déplacer des zones rectangulaires.
- modes 187 et 191 : pour dupliquer des zones rectangulaires.
- modes de 192 à 199 : pour dessiner des ellipses vides.
- modes de 200 à 207 : pour dessiner des ellipses pleines.
- modes 249 et 253 : pour permuter le contenu de deux zones rectangulaires.
ÉPAISSEUR DES LIGNES À TRACER.
Par défaut, tous les tracés, que ce soit pour dessiner des lignes continues ou les contours de figures, l'épaisseur des traits est de 1 pixel. Pour modifier cette épaisseur, on doit utiliser la commande VDU 23 , 23 , epaisseur ou VDU 23 , 23 , epaisseur , 0 , 0 , 0, où epaisseur est un nombre entier définissant la nouvelle épaisseur des tracés à venir.
L'épaisseur des tracés existants ne sera pas modifiée et les tracés réalisés en pointillés ou en discontinus auront toujours une épaisseur de 1 pixel quelle que soit la valeur de epaisseur active.
MODE 8
GCOL 3
FOR kepaisseur = 2 TO 10
kordonnee = 1024 - ( kepaisseur * 50 )
LINE 100 , kordonnee , 1180 , kordonnee
VDU 23 , 23 , kepaisseur , 0 , 0 , 0
NEXT kepaisseur
END
DÉPLACER LE CURSEUR GRAPHIQUE AVEC DES COORDONNÉES ABSOLUES.
Les modes : 4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 148, 156, 164, 172, 180, 196, 204, 212, 220, 228, 236 et 244 de l'instruction PLOT sont des synonymes et permettent de déplacer le curseur graphique de façon absolue.
Ces modes sont des synonymes de MOVE abscisse , ordonnee qu'on préférera utiliser le plus souvent possible.
Pour déplacer le curseur graphique de façon absolue, l'appel doit avoir la forme : PLOT mode , abscisse , ordonnee.
MODE 8
REPEAT
READ kmode
CLS : CLG
PRINT "PLOT " ; kmode ; " (appuyer sur une touche pour continuer ...)"
MOVE 25 , 10
FOR kcouleur = 1 TO 16
GCOL kcouleur
kabscisse = 25 + ( 70 * kcouleur )
kordonnee = 10 + ( 35 * kcouleur )
PLOT kmode , kabscisse , kordonnee : REM --- déplace le curseur graphique en ( kabscisse , kordonnee )
DRAW BY 50 , 0 : REM --- trace un segment de 50 pixels de long depuis le curseur graphique
NEXT kcouleur
kpause = GET
IF kmode = 244 THEN EXIT REPEAT
UNTIL FALSE
CLS : CLG
PRINT "Execusion teminee."
END
DATA 4 , 12 , 20 , 28 , 36 , 44 , 52 , 60 , 68 , 76
DATA 84 , 92 , 100 , 108 , 116 , 124 , 148
DATA 156 , 164 , 172 , 180 , 196 , 204 , 212
DATA 220 , 228 , 236 , 244
DÉPLACER LE CURSEUR GRAPHIQUE AVEC DES COORDONNÉES RELATIVES.
Les modes : 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 144, 152, 160, 168, 176, 192, 200, 208, 216, 224, 232 et 240 de l'instruction PLOT sont des synonymes et permettent de déplacer le curseur graphique de façon relative, par rapport à sa position actuelle.
Ces modes sont des synonymes de MOVE BY horizontal , vertical qu'on préférera utiliser le plus souvent possible.
Pour déplacer le curseur graphique relativement à sa position avant l'appel, l'appel doit avoir la forme : PLOT mode , horizontal , vertical.
MODE 8
REPEAT
READ kmode
CLS : CLG
PRINT "PLOT " ; kmode ; " (appuyer sur une touche pour continuer ...)"
MOVE 25 , 10
FOR kcouleur = 1 TO 16
GCOL kcouleur
DRAW BY 50 , 0
PLOT kmode , 20 , 35
NEXT kcouleur
kpause = GET
IF kmode = 240 THEN EXIT REPEAT
UNTIL FALSE
CLS : CLG
PRINT "Execusion teminee."
END
DATA 0 , 8 , 16 , 24 , 32 , 40 , 48 , 56 , 64 , 72
DATA 80 , 88 , 96 , 104 , 112 , 120 , 144
DATA 152 , 160 , 168 , 176 , 192 , 200 , 208
DATA 216 , 224 , 232 , 240
AFFICHER UN POINT UNIQUE.
Pour afficher un point à une position quelconque, on utilisera la forme PLOT mode , abscisse , ordonnee.
Pour afficher un point à une position relative au curseur graphique, on utilisera la forme PLOT mode , horizontal , vertical.
Les coordonnées du point affiché deviennent les coordonnées du curseur graphique.
PLOT 69 , abs , ord est un synonyme de LINE abs , ord , abs , ord qu'on préférera utiliser.
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
REM --- Avec des coordonnées absolues ---
MODE 8
PRINT "Appuyez sur une touche pour quitter."
REPEAT
GCOL RND( 16 )
PLOT 69 , ( 50 + RND( 1180 ) ) , ( 50 + RND( 924 ) )
UNTIL INKEY( 2 ) <> -1
END
REM --- Avec des coordonnées relatives ---
MODE 8
MOVE 640 , 512
PRINT "Appuyez sur une touche pour quitter."
REPEAT
GCOL RND( 16 )
PLOT 65 , ( 8 - RND( 15 ) ) , ( 8 - RND( 15 ) )
UNTIL INKEY( 2 ) <> -1
END
TRACER DES LIGNES JUSQU'À DES COORDONNÉES ABSOLUES.
Pour tracer des segments de lignes, depuis la position actuelle du curseur graphique aux coordonnées absolues ( abscisse , ordonnee ), l'appel de l'instruction doit avoir la forme : PLOT mode , abscisse , ordonnee.
Après le tracé exécuté, qu'il soit affiché ou ignoré, les coordonnées du point final ( abscisse , ordonnee ) deviennent les coordonnées du curseur graphique.
PLOT 5 , abscisse , ordonnee est un synonyme de DRAW abscisse , ordonnee qu'on préférera utiliser.
Les modes 5, 6, 7, 13, 14 et 15 traceront des lignes continues.
Les modes 21, 22, 23, 29, 30 et 31 traceront des lignes faites de points.
Les modes 37, 38, 39, 45, 46 et 47 traceront des lignes faites de tirets.
Les modes 53, 54, 55, 61, 62 et 63 traceront des lignes faites de points et de tirets.
Les modes de la colonne "ignoré" ne modifient la couleur du point à ( abscisse , ordonnee ), et uniquement ce point de la ligne, les autres points seront bien tracé dans la couleur indiquée par la valeur du mode. Ces modes permettent de dessiner des figures complexes, faites, par exemple, de cotés de couleurs différentes en évitant les conflits de couleurs sur les points confondus de fin et de début de segments.
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
MODE 8
GCOL 3
kordonnee = 800
FOR kmode = 5 TO 63 STEP 16
MOVE 100 , kordonnee
PLOT kmode , 400 , kordonnee
MOVE 100 , ( kordonnee - 5 )
PLOT ( kmode + 8 ) , 400 , ( kordonnee - 5 )
kordonnee -= 50
NEXT kmode
END
TRACER DES LIGNES JUSQU'À DES COORDONNÉES RELATIVES.
Pour tracer des segments de lignes, depuis la position actuelle du curseur graphique aux coordonnées relatives ( horizontal , vertical ) l'appel de l'instruction doit avoir la forme : PLOT mode , horizontal , vertical.
Après le tracé exécuté, qu'il soit affiché ou ignoré, les coordonnées du point final deviennent les coordonnées du curseur graphique.
PLOT 1 , horizontal , vertical est un synonyme de DRAW BY horizontal , vertical qu'on préférera utiliser.
Les modes 1, 2, 3, 9, 10 et 11 traceront des lignes continues.
Les modes 17, 18, 19, 25, 26 et 27 traceront des lignes faites de points.
Les modes 33, 34, 35, 41, 42 et 43 traceront des lignes faites de tirets.
Les modes 49, 50, 51, 57, 58 et 59 traceront des lignes faites de points et de tirets.
Les modes de la colonne "ignoré" ne modifient la couleur du point à ( horizontal , vertical ), et uniquement ce point de la ligne, les autres points seront bien tracé dans la couleur indiquée par la valeur du mode. Ces modes permettent de dessiner des figures complexes, faites, par exemple, de cotés de couleurs différentes en évitant les conflits de couleurs sur les points confondus de fin et de début de segments.
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
MODE 8
GCOL 3
kordonnee = 800
FOR kmode = 1 TO 63 STEP 16
MOVE 100 , kordonnee
PLOT kmode , 300 , 0
MOVE 100 , ( kordonnee - 5 )
PLOT ( kmode + 8 ) , 300 , 0
kordonnee -= 50
NEXT kmode
TRACER DES LIGNES HORIZONTALES ENTRE DEUX BORNES DE COULEUR.
Les modes de TYPE 1 trace une ligne entre 2 points de couleur d'avant-plan. C'est d'abord l'extrémité de droite qui est recherchée, puis celle de gauche, enfin la ligne est tracée entre ces 2 points.
Les modes de TYPE 2 trace une ligne depuis le point de référence jusqu'au 1er point d'une couleur fond à sa droite.
Les modes de TYPE 3 trace une ligne entre 2 points de couleur d'avant-plan actuelle. C'est d'abord l'extrémité de droite qui est recherchée, puis celle de gauche, enfin la ligne est tracée entre ces 2 points.
Les modes de TYPE 4 trace une ligne depuis le point de référence jusqu'au 1er point n'ayant pas la couleur d'avant-plan actuelle. Si le mode choisi, ne trace pas les lignes en couleur d'arrière-plan (modes 127 et 123), il est probable qu'il n'y ai aucun tracer.
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
Pour placer le point de référence à une position quelconque, on utilisera la forme PLOT mode , abscisse , ordonnee.
Pour placer le point de référence à une position relative, on utilisera la forme PLOT mode , horizontal , vertical.
Après le tracer, le curseur graphique se place aux coordonnées du point de référence.
MODE 8
GCOL 3 : RECTANGLE FILL 450 , 390 , 480 , 50 : REM --- dessine un rectangle jaune
GCOL 4 : RECTANGLE FILL 400 , 300 , 100 , 500 : REM --- dessine un rectangle bleu
GCOL 1 : RECTANGLE FILL 880 , 300 , 100 , 500 : REM --- dessine un rectangle rouge
GCOL 3 : RECTANGLE 100 , 290 , 1080 , 520 : REM --- dessine un cadre jaune
REM --- Entre les rectangle ---
PLOT 77 , 640 , 720
PLOT 93 , 640 , 620
PLOT 109 , 640 , 520
PLOT 127 , 640 , 420
REM --- Dans le rectangle bleu ---
PLOT 77 , 450 , 710
PLOT 93 , 450 , 610
PLOT 109 , 450 , 510
PLOT 127 , 450 , 410
REM --- Dans le rectangle rouge ---
PLOT 77 , 930 , 700
PLOT 93 , 930 , 600
PLOT 109 , 930 , 500
PLOT 127 , 930 , 400
END
TRACER ET REMPLIR DES TRIANGLES.
Pour placer le point C avec les modes 85, 86 et 87 (coordonnées absolues), on utilisera la forme PLOT mode , abscisse , ordonnee.
Pour placer le point C avec les modes 81, 82 et 83 (coordonnées relatives), on utilisera la forme PLOT mode , horizontal , vertical.
Pour obtenir un triangle plein, on utilisera l'un des modes du tableau ci-dessous :
- le point C aura les coordonnées définies par l'appel de PLOT ;
- le point B aura les coordonnées actuelles du curseur graphique ;
- le point A aura les coordonnées précédentes du curseur graphique.
Pour obtenir uniquement le contour d'un triangle, on pourra utiliser, par exemple :
LINE Ax , Ay , Bx , By : DRAW Cx , Cy : DRAW Ax , Ay
Après le tracer, le curseur graphique se place aux coordonnées du point de référence (point C).
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
MODE 8
GCOL 4
GCOL 134
REM --- Dessiner des tringles en modes absolus ---
kordonnee = 1000
FOR kmode = 85 TO 87
kordonnee -= 250
MOVE 100 , kordonnee : REM --- Place le premier sommet
MOVE 170 , ( kordonnee - 200 ) : REM --- Place le deuxième sommet
PLOT kmode , 400 , ( kordonnee - 150 ) : REM --- Place le troisième sommet
NEXT kmode
REM --- Dessiner des tringles en modes relatifs ---
kordonnee = 1000
FOR kmode = 81 TO 83
kordonnee -= 250
MOVE 600 , kordonnee : REM --- Place le premier sommet
MOVE 670 , kordonnee - 200 : REM --- Place le deuxième sommet
PLOT kmode , 300 , 50 : REM --- Place le troisième sommet
NEXT kmode
END
TRACER DES RECTANGLES OU DES CARRES PLEINS ALIGNÉS SUR LES AXES.
Pour obtenir un rectangle, ou un carré, on utilisera l'un des modes du tableau ci-contre :
- le point A aura les coordonnées actuelles du curseur graphique et ;
- le point B aura les coordonnées définies par l'appel de PLOT.
Pour placer le point B avec les modes 101, 102 et 103 (coordonnées absolues), on utilisera la forme PLOT mode , abscisse , ordonnee. Le point B sera donc placé précisément aux coordonnées ( abscisse , ordonnee ).
Pour placer le point B avec les modes 97, 98 et 99 (coordonnées relatives), on utilisera la forme PLOT mode , horizontal , vertical. Le point B sera donc placé en fonction de la possition du point A et des décalages donnés en argument.
MOVE abscisse , ordonnee : PLOT 97 , horizontal , vertical est un synonyme de
RECTANGLE FILL abscisse , ordonnee , horizontal , vertical qu'on préférera utiliser.
Pour obtenir un rectangle, ou un carré, vide, on utilisera :
RECTANGLE abscisse , ordonnee , horizontal , vertical.
Après le tracer, le curseur graphique se place aux coordonnées du point de référence (point B).
MODE 8
GCOL 4
GCOL 134
REM --- Dessiner des rectangle en modes absolus ---
kordonnee = 1000
FOR kmode = 101 TO 103
kordonnee -= 250
MOVE 100 , kordonnee : REM --- Place le premier sommet
PLOT kmode , 400 , ( kordonnee - 150 ) : REM --- Place le sommet opposé
NEXT kmode
REM --- Dessiner des rectangle en modes relatifs ---
kordonnee = 1000
FOR kmode = 97 TO 99
kordonnee -= 250
MOVE 600 , kordonnee : REM --- Place le premier sommet
PLOT kmode , 300 , -150 : REM --- Place le sommet opposé
NEXT kmode
TRACER DES PARALLÉLOGRAMMES PLEINS.
Pour placer le point C avec les modes 117, 118 et 119 (coordonnées absolues), on utilisera la forme PLOT mode , abscisse , ordonnee.
Pour placer le point C avec les modes 113, 114 et 115 (coordonnées relatives), on utilisera la forme PLOT mode , horizontal , vertical.
Pour obtenir un parallélogramme, on utilisera l'un des modes du tableau ci-contre :
- le point A aura les coordonnées précédentes du curseur graphique ;
- le point B aura les coordonnées actuelles du curseur graphique ;
- le point C aura les coordonnées définies par l'appel de PLOT ;
- le point D sera obtenu par les coordonnées de A - celles B + celles C.
Par exemple :
- les coordonnées de A sont ( 600 , 700 ) ;
- les coordonnées de B sont ( 300 , 650 ) ;
- les coordonnées de C sont ( 550 , 550 ) ;
- les coordonnées de D seront ( 850 , 600 ) puisque :
- abscisse = 600 - 300 + 550 = 850 et ;
- ordonnée = 700 - 650 + 550 = 600.
Après le tracer, le curseur graphique se place aux coordonnées du point de référence (point C).
MODE 8
GCOL 4
GCOL 134
REM --- Dessiner des parallelogrammes en modes absolus ---
kordonnee = 1000
FOR kmode = 117 TO 119
kordonnee -= 250
MOVE 100 , kordonnee : REM --- Place le premier sommet
MOVE 170 , ( kordonnee - 200 ) : REM --- Place le deuxième sommet
PLOT kmode , 400 , ( kordonnee - 150 ) : REM --- Place le troisième sommet
NEXT kmode
REM --- Dessiner des parallelogrammes en modes relatifs ---
kordonnee = 1000
FOR kmode = 113 TO 115
kordonnee -= 250
MOVE 600 , kordonnee : REM --- Place le premier sommet
MOVE 670 , kordonnee - 200 : REM --- Place le deuxième sommet
PLOT kmode , 300 , 50 : REM --- Place le troisième sommet
NEXT kmode
END
Pour obtenir uniquement le contour d'un parallélogramme, on pourra utiliser, par exemple :
LINE Ax , Ay , Bx , By : DRAW Cx , Cy : DRAW Dx , Dy : DRAW Ax , Ay ou
LINE Ax , Ay , Bx , By : DRAW Cx , Cy : DRAW ( Ax - Bx + Cx ) , ( Ay - By + Cy ) : DRAW Ax , Ay.
REM --- Dessiner un parallelogramme bleu et sa bordure jaune ---
MODE 8
REM --- Dessine l'interieur du parallelogrammes ---
GCOL 4
MOVE 600 , 700
MOVE 300 , 650
PLOT 117 , 550 , 550
REM --- Dessine la bordure du parallelogrammes ---
GCOL 3
LINE 600 , 700 , 300 , 650
DRAW 550 , 550
DRAW 850 , 600 : REM --- ou DRAW ( 600 - 300 + 550 ) , ( 700 - 650 + 550 )
DRAW 600 , 700
END
TRACER DES CERCLES OU DES DISQUES.
Pour obtenir un cercle, ou un disque, on utilisera l'un des modes du tableau ci-contre :
- les coordonnées actuelles du curseur graphique seront celles du centre ;
- les coordonnées définies par l'appel de PLOT seront celles d'un point sur la circonférence.
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
Avec les modes de la colonne "absolues", on utilisera la forme PLOT mode , abscisse , ordonnee, le point de référence aux coordonnées ( abscisse , ordonnee ) se trouve sur la circonférence de la figure.
Avec les modes de la colonne "relatives", on utilisera la forme PLOT mode , horizontal , vertical, le point de référence sera donc placé en fonction d la position actuelle du curseur graphique et se trouvera sur la circonférence de la figure.
Après le tracer, le curseur graphique se place aux coordonnées du point de référence (point C).
Le plus souvent, on utilisera un appel ayant la forme PLOT mode , rayon , 0 ou PLOT mode , 0 , rayon.
REM --- Initialisation ---
MODE 8
GCOL 3
GCOL 133
REM --- Dessins ---
FOR kligne = 0 TO 1
kabscisse = 100
kordonnee = 700 - ( kligne * 250 )
FOR kcolonne = 0 TO 5
kabscisse = 100 + ( kcolonne * 200 )
IF kligne = 0 THEN khorizontal = kabscisse + 75 ELSE khorizontal = 75
IF kligne = 0 THEN kvertical = kordonnee ELSE kvertical = 0
READ kmode : REM --- selectionne le mode à tester ---
MOVE kabscisse , kordonnee : REM --- place le curseur graphique au centre de la figure ---
PLOT kmode , khorizontal , kvertical : REM --- place le point de reference sur la circonference ---
NEXT kcolonne
NEXT kligne
END
REM --- liste des modes a tester ---
DATA 149 , 150 , 151 , 157 , 158 , 159
DATA 145 , 146 , 147 , 153 , 154 , 155
MOVE abscisse , ordonnee : PLOT 145 , horizontal , vertical est un synonyme de CIRCLE abscisse , ordonnee , rayon.
MOVE abscisse , ordonnee : PLOT 153 , horizontal , vertical est un synonyme de CIRCLE FILL abscisse , ordonnee , rayon.
TRACER DES ELLIPSES ALIGNÉES SUR LES AXES.
Pour obtenir une ellipse, vide ou pleine, on utilisera l'un des modes du tableau ci-contre :
- le point C aura les coordonnées définies par l'appel de PLOT ;
- le point B aura les coordonnées actuelles du curseur graphique ;
- le point A aura les coordonnées précédentes du curseur graphique.
L'abscisse du point B définira le rayon horizontal de l'ellipse.
L'ordonnée du point C définira le rayon vertical de l'ellipse.
Avec les modes de la colonne "absolues", on utilisera la forme PLOT mode , abscisse , ordonnee.
Avec les modes de la colonne "relatives", on utilisera la forme PLOT mode , horizontal , vertical. Attention : les décalages se font relativement aux coordonnées de la position actuelle du curseur graphique, c'est-à-dire du point B et non par rapport au centre de l'ellipse au point A.
Le plus souvent, on utilisera un appel ayant la forme PLOT mode , 0 , ordonnee ou PLOT mode , 0 , vertical.
Après le tracer, le curseur graphique se place aux coordonnées du point de référence (point C).
REM --- Initialisation ---
MODE 8
GCOL 3
GCOL 133
REM --- Dessins ---
FOR kligne = 0 TO 1
kabscisse = 100
kordonnee = 700 - ( kligne * 250 )
FOR kcolonne = 0 TO 5
kabscisse = 100 + ( kcolonne * 200 )
khorizontal = kabscisse + 75
kvertical = kordonnee + 100
READ kmode : REM --- selectionne le mode à tester ---
MOVE kabscisse , kordonnee : REM --- place le point A (centre de l'ellipse ---
MOVE khorizontal , 0 : REM --- place le point B (rayon horizontal) ---
PLOT kmode , 0 , kvertical : REM --- place le point C (rayon vertical) ---
NEXT kcolonne
NEXT kligne
END
REM --- liste des modes a tester ---
DATA 197 , 198 , 199 , 205 , 206 , 207
DATA 193 , 194 , 195 , 201 , 202 , 203
MOVE abscisse , ordonnee
MOVE abscisse + horizontal , 0
PLOT 193 , 0 , ordonnee + vertical est un synonyme de
ELIPSE abscisse , ordonnee , horizontal , vertical qu'on préférera utiliser.
MOVE abscisse , ordonnee
MOVE abscisse + horizontal , 0
PLOT 201 , 0 , ordonnee + vertical est un synonyme de
ELIPSE FILL abscisse , ordonnee , horizontal , vertical qu'on préférera utiliser.
TRACER DES ARCS DE CERCLE ET LES COLORIER TOUT OU PARTIE.
Pour obtenir un arc de cercle, on utilisera l'un des modes du tableau ci-contre :
- le point C aura les coordonnées définies par l'appel de PLOT ;
- le point B aura les coordonnées actuelles du curseur graphique ;
- le point A aura les coordonnées précédentes du curseur graphique.
Le point A est le centre du cercle.
Le point B est le début de l'arc de cercle.
Le point D est la fin de l'arc de cercle.
Le point C se trouve sur le segment [AD].
Les segments [AB] et [AD] sont 2 rayons du cercle.
Voir la gestion des couleurs pour plus de détails sur les types de couleurs.
Avec les modes de la colonne "absolues", on utilisera la forme PLOT mode , abscisse , ordonnee.
Avec les modes de la colonne "relatives", on utilisera la forme PLOT mode , horizontal , vertical. Attention : les décalages se font relativement aux coordonnées de la position actuelle du curseur graphique, c'est-à-dire du point B et non par rapport au centre du cercle au point A.
Après le tracer, le curseur graphique se place aux coordonnées du point de référence (point C).
Note : quel que soit le mode choisi, le tracé de l'arc de cercle est toujours fait dans le sens antihoraire, c'est-à-dire dans le sens inverse des aiguilles d'une montre.
MODE 8
GCOL 3
GCOL 133
kordonnee = 800
FOR ktype = 165 TO 181 STEP 8
FOR kcouleur = 0 TO 2
kmode = ktype + kcouleur
kabscisse = 100 + ( kcouleur * 400 )
MOVE ( kabscisse - 20 ) , ( kordonnee - 40 )
MOVE ( kabscisse + 220 ) , ( kordonnee - 60 )
PLOT kmode , kabscisse , kordonnee
NEXT kcouleur
kordonnee -= 300
NEXT ktype
END
COLORIER UNE ZONE DE LA FENÊTRE DE SORTIE.
Les modes 129, 130 et 131 permettent de remplir une zone de la fenêtre de sortie, depuis un point aux coordonnées relatives à celles du curseur graphique, jusqu'aux points d'une couleur d'avant-plan, c'est-à-dire donc le code est compris entre 0 et 127. Dans ce cas, l'appel doit avoir la forme PLOT mode , horizontal , vertical.
Les modes 133, 134 et 135 permettent de remplir une zone de la fenêtre de sortie, depuis un point aux coordonnées précisées, jusqu'aux points d'une couleur d'avant-plan, c'est-à-dire dont le code est compris entre 0 et 127. Dans ce cas, l'appel doit avoir la forme PLOT mode , abscisse , ordonnee.
Les modes 137, 138 et 139 permettent de remplir une zone de la fenêtre de sortie, depuis un point aux coordonnées relatives à celles du curseur graphique, jusqu'aux points de la couleur d'avant-plan actuelle, c'est-à-dire la couleur d'avant-plan définit par GCOL. Dans ce cas, l'appel doit avoir la forme PLOT mode , horizontal , vertical.
Les modes 141, 142 et 143 permettent de remplir une zone de la fenêtre de sortie, depuis un point aux coordonnées précisées, jusqu'aux points de la couleur d'avant-plan actuelle, c'est-à-dire la couleur d'avant-plan définit par GCOL. Dans ce cas, l'appel doit avoir la forme PLOT mode , abscisse , ordonnee.
Les modes 129, 133 , 137 et 141 remplissent la zone avec la couleur logique d'avant-plan actuelle.
Les modes 130, 134 , 138 et 142 remplissent la zone avec la couleur physique d'avant-plan actuelle.
Les modes 131, 135 , 139 et 143 remplissent la zone avec la couleur logique d'arrière-plan actuelle.
Les modes 133, 134, 141 et 142 sont des synonymes de FILL abscisse , ordonnee qu'on préférera utiliser.
Les modes 129, 130, 137 et 138 sont des synonymes de FILL BY horizontal , vertical qu'on préférera utiliser.
MODE 8
GCOL 3
RECTANGLE 200 , 200 , 200 , 600 : REM --- trace un cadre en jaune a gauche
RECTANGLE FILL 800 , 200 , 200 , 600 : REM --- trace un rectangle en jaune a droite
GCOL 4 : PLOT 133 , 300 , 500 : REM --- remplissage du cadre de gauche en bleu
GCOL 5 : PLOT 133 , 640 , 500 : REM --- remplissage entre les figures en fuchsia
GCOL 6 : PLOT 133 , 900 , 500 : REM --- tente un remplissage du rectangle de droite en cyan
END
DÉPLACER, ÉCHANGER OU COPIER DES ZONES DE LA FENÊTRE DE SORTIE.
Pour gérer des zones de la fenêtre de sortie :
- le point A aura les coordonnées précédentes du curseur graphique ;
- le point B aura les coordonnées actuelles du curseur graphique ;
- le point C aura les coordonnées définies par l'appel de PLOT.
Le point A est le point d'origine de la zone source.
Le point B est le point opposé du point A de la zone source.
Le point C est le point d'origine de la zone de destination.
Après l'opération, le curseur graphique se place aux coordonnées du point de référence (point B).
Pour déplacer une zone source vers une zone de destination, on utilisera la forme :
- PLOT 189 , abscisse , ordonnee, en prenant le point aux coordonnées abscisse , ordonnee comme point C ;
- PLOT 185 , horizontal , vertical, en prenant le point aux coordonnées relatives horizontal , vertical comme point C.
D'abord, mémorise la zone rectangulaire (source) ayant pour diagonale le segment [AB] où A est l'origine de la zone. Ensuite, recopie cette surface (source) en prenant les coordonnées spécifiées comme point d'origine, point C, de la surface à dessiner (destination). Enfin, on remplie de la couleur d'arrière-plan la surface mémorisée (source). Il faudra donc, le plus souvent, utiliser 2 instructions MOVE pour définir les sommets de la diagonale de source. L'ordre dans lequel les points sont visités est important.
MODE 8
GCOL 6 : ELLIPSE FILL 300 , 300 , 80 , 30
GCOL 7 : ELLIPSE FILL 300 , 300 , 30 , 80
GCOL 4 : CIRCLE FILL 300 , 300 , 35
GCOL 3 : CIRCLE 300 , 300 , 50
LINE 250 , 250 , 350 , 350
LINE 250 , 350 , 350 , 250
INPUT "Appuyez sur entree pour deplacer ..." , kpause
MOVE 200 , 200
MOVE 400 , 400
PLOT 189 , 540 , 400
END
Les modes 189 et 185 correspondent à l'instruction RECTANGLE FILL ... TO ..., qu'on préférera utiliser.
Pour copier une zone source vers une zone de destination, on utilisera la forme :
- PLOT 191 , abscisse , ordonnee, en prenant le point aux coordonnées abscisse , ordonnee comme point C ;
- PLOT 187 , horizontal , vertical, en prenant le point aux coordonnées relatives horizontal , vertical comme point C.
D'abord, mémorise la zone rectangulaire (source) ayant pour diagonale le segment [AB] où A est l'origine de la zone. Puis, recopie cette surface (source) en prenant les coordonnées spécifiées comme point d'origine, point C, de la surface à dessiner (destination). La surface mémorisée (source) n'est pas modifiée, sauf si elle est chevauchée par la zone redessinée. Il faudra donc, le plus souvent, utiliser 2 instructions MOVE pour définir les sommets de la diagonale de source. L'ordre dans lequel les points sont visités est important.
MODE 8
GCOL 6 : ELLIPSE FILL 300 , 300 , 80 , 30
GCOL 7 : ELLIPSE FILL 300 , 300 , 30 , 80
GCOL 4 : CIRCLE FILL 300 , 300 , 35
GCOL 3 : CIRCLE 300 , 300 , 50
LINE 250 , 250 , 350 , 350
LINE 250 , 350 , 350 , 250
PRINT "Q pour quitter ou C pour copier la zone ... "
REPEAT
kpause$ = GET$
IF kpause$ = "Q" OR kpause$ = "q" THEN EXIT REPEAT
MOVE 175 , 175
MOVE 425 , 425
PLOT 191 , RND( 1200 ) , RND( 1000 )
UNTIL FALSE
CLS
PRINT "Fin du test. Au revoir."
END
Les modes 191 et 187 correspondent à l'instruction RECTANGLE ... TO ..., qu'on préférera utiliser.
Pour permuter une zone source et une zone de destination, on utilisera la forme :
- PLOT 253 , abscisse , ordonnee, en prenant le point aux coordonnées abscisse , ordonnee comme point C ;
- PLOT 249 , horizontal , vertical, en prenant le point aux coordonnées relatives horizontal , vertical comme point C.
D'abord, mémorise la zone rectangulaire (primaire) ayant pour diagonale le segment [AB] où A est l'origine de la zone. Puis, recopie cette surface (source) en prenant les coordonnées spécifiées comme point d'origine, point C, et ayant les mêmes dimensions que primaire. Enfin, échange les contenus de primaire et de secondaire, c'est-à-dire que le contenu primaire est transféré dans secondaire et que le contenu de secondaire et transféré dans primaire. Si les deux zones se chevauchent, c'est le contenu de primaire qui sera conservé dans la partie commune aux deux zones. Il faudra donc, le plus souvent, utiliser 2 instructions MOVE pour définir les sommets de la diagonale de primaire. L'ordre dans lequel les points sont visités est important.
MODE 8
GCOL 2 : RECTANGLE 200 , 200 , 200 , 200
GCOL 6 : ELLIPSE FILL 300 , 300 , 80 , 30
GCOL 7 : ELLIPSE FILL 300 , 300 , 30 , 80
GCOL 4 : CIRCLE FILL 300 , 300 , 35
GCOL 5 : RECTANGLE 850 , 600 , 200 , 200
GCOL 3 : CIRCLE 950 , 700 , 50
GCOL 6 : LINE 900 , 750 , 1000 , 650
GCOL 3 : LINE 900 , 650 , 1000 , 750
PRINT "Q pour quitter ou P pour permuter les zones ... "
REPEAT
kpause$ = GET$
IF kpause$ = "Q" OR kpause$ = "q" THEN EXIT REPEAT
MOVE 200 , 200
MOVE 400 , 400
PLOT 253 , 850 , 600
UNTIL FALSE
CLS
PRINT "Test temine."
END
Les modes 253 et 249 correspondent à l'instruction RECTANGLE SWAP ... TO ..., qu'on préférera utiliser.
Voir le module aagfxlib.bbc qui propose des procédures et des fonctions permettant d'obtenir des graphismes anticrénelés.
RUBRIQUES.
Les dessins et les graphismes pour plus de détails sur la création de dessins et de graphismes.
L'affichage des textes pour plus de détails sur les fonctions d'affichage de texte.
La gestion des couleurs pour plus de détails sur la gestion des couleurs logiques et physiques.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.