GCOL
DESCRIPTION.
L'instruction GCOL définit la couleur logique d'avant-plan et d'arrière-plan.
SYNTAXE.
GCOL couleur
GCOL mode , couleur
REMARQUES.
couleur doit être un nombre entier compris entre 0 et 255. si couleur est :
- inférieur à 128, l'instruction GCOL modifie la couleur logique de l'avant-plan ;
- supérieur à 127, l'instruction GCOL modifie la couleur de l'arrière-plan.
Si couleur est supérieur au nombre de couleurs de la palette : 2, 4 ou 16 selon le mode de la fenêtre de sortie, la couleur sélectionnée sera calculée comme suit, où max est le nombre de couleurs dans la palette :
- couleur MOD max si couleur est inférieur à 128 ;
- 128 + ( couleur MOD max ) si couleur est supérieur à 127.
- mode est un nombre entier qui détermine le mode des futurs tracés. Si mode est absent, sa valeur par défaut est 0, et couleur sera appliqué à tous les nouveaux tracés. Sinon mode peut valoir :
- 0, les tracés se feront avec couleur ;
- 1, OR binaire de couleur avec la couleur présente ;
- 2, AND binaire de couleur avec la couleur présente ;
- 3, XOR binaire de couleur avec la couleur présente ;
- 4, inverse la couleur présente (couleur n'est pas pris en compte dans ce mode) ;
- 5, ne faites rien (les opérations sont interdites) ;
- 6, AND binaire inverse de couleur avec la couleur présente ;
- 7, OR binaire et inverse de couleur avec la couleur présente ;
L'instruction GCOL ne se contente pas de modifier la couleur logique d'avant-plan ou d'arrière-plan, elle définit également comment cette couleur interagit avec les pixels déjà présents à l'écran. C'est ce qu'on appelle les "modes d'opération". Si le paramètre mode est présent à l'appel de l'instruction GCOL sa valeur détermine comment la nouvelle couleur sera combinée avec la couleur présente sur les pixels qui devront être redessinés par des instructions de dessin.
La nouvelle couleur du pixel est le résultat d'une opération bit à bit de la couleur présente et de couleur, avec un :
- OR binaire, pour chaque bit de couleur, si le bit correspondant du pixel OU de couleur est 1, le bit vaut 1, sinon, 0 ;
- AND binaire, pour chaque bit de couleur, si le bit correspondant du pixel ET de couleur est 1, le bit vaut 1, sinon, 0 ;
- XOR binaire, pour chaque bit de couleur, si un et un seul bit correspondant du pixel OU de couleur est 1, le bit vaut 1, sinon, 0 ;
- inverse, pour chaque bit de couleur, si le bit correspondant est 1, le bit vaut 0, sinon, 1.
Même si une instruction GCOL modifie la couleur d'arrière-plan, la totalité du fond de la fenêtre de sortie ne sera modifiée, avec cette nouvelle couleur, qu'après l'utilisation de l'instruction CLG.
Pour connaitre quelles sont les couleurs actuellement sélectionnées, on utilisera la variable système :
- @vdu.g.b&, qui retourne la couleur d'avant-plan pour les dessins ;
- @vdu.g.d&, qui retourne la couleur d'arrière-plan actuelle pour les dessins.
MODE 8
REPEAT
GCOL RND( 15 )
GCOL 128 + RND( 15 )
CLG
CIRCLE FILL 640 , 512 , 150
WAIT( 20 )
PRINT TAB( 0 , 0 ) "couleur des dessins : " ; @vdu.g.b&
PRINT "couleur du fond : " ; @vdu.g.d&
PRINT "Appuyer Q pour quitter ou sur une autre touche pour continuer."
kchoix$ = GET$
UNTIL kchoix$ = "Q" OR kchoix$ = "q"
END
Les couleurs du texte, d'avant-plan et d'arrière-plan ne sont pas modifiées par une instruction GCOL, sauf après une instruction CLG. voir COLOUR pour plus de détails sur les couleurs d'affichage des textes.
Pour personnaliser la palette de couleurs de la fenêtre de sortie, voir l'instruction COLOUR.
GCOL couleur et VDU 18 , 0 , couleur sont des synonymes.
GCOL mode , couleur et VDU 18 , mode , couleur sont des synonymes.
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.
RUBRIQUES.
Les dessins et les graphismes pour plus de détails sur la création de dessins et de graphismes.
La gestion des couleurs pour plus de détails sur la gestion des couleurs logiques et physiques.
EXEMPLE.
MODE 8
FOR kcouleur = 0 TO 7
CLG
FOR krectangle = 0 TO 7
GCOL krectangle
kabscisse = 200 + ( 100 * krectangle )
RECTANGLE FILL kabscisse , 400 , 100 , 200
NEXT krectangle
kordonnee = 585
FOR kmode = 0 TO 7
GCOL kmode , kcouleur
RECTANGLE FILL 200 , kordonnee , 800 , 7
kordonnee -= 20
NEXT kmode
PRINT "code couleur = " ; kcouleur ; ". Appuyer sur une touche pour continuer."
kpause = GET
NEXT kcouleur
PRINT "Fin du test. Au revoir."
END
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.