Section courante

A propos

Section administrative du site

Commandes graphiques

Les commandes graphiques vous permettent de dessiner des formes et de remplir des zones de l'affichage avec des couleurs et des motifs.

Vous dessinez normalement des lignes, des cercles, des cases,..., sur l'écran avec un stylet principal, appelé PENA. Un crayon secondaire, PENB, remplit les couleurs d'arrière-plan et effectue d'autres tâches spéciales. Certaines figures fermées à l'écran peuvent avoir un contour dans une troisième couleur, qui est dessinée par PENO (O pour contour).

Plusieurs commandes graphiques font référence aux coordonnées du curseur pixel ; ne les confondez pas avec les coordonnées de caractères utilisées par plusieurs commandes et fonctions non graphiques. (Il y a normalement 320 pixels et 40 caractères par ligne d'affichage.) En d'autres termes, chaque caractère a une largeur de huit pixels. L'écran peut afficher jusqu'à 23 lignes de texte et contient 200 lignes de balayage. Vous pouvez considérer une ligne de balayage comme la contrepartie verticale d'un pixel. Chaque ligne de texte a une hauteur de huit lignes de balayage.

Le nombre de couleurs disponibles dépend de la profondeur d'affichage. La profondeur par défaut est de quatre, autorisant 2^4 ou 16 couleurs. Il y a 32 registres de couleurs. Le tableau intitulé "Valeurs de registre de couleur par défaut" à la fin de "Commandes graphiques" décrit la composition rouge, vert, bleu des couleurs par défaut attribuées aux 16 premiers de ces registres. Vous pouvez modifier la profondeur d'affichage pour autoriser 32 couleurs différentes, mais les 16 couleurs supérieures sont identiques aux 16 inférieures. Vous pouvez redéfinir leur composition de couleurs avec la commande RGB.

Les coordonnées des pixels graphiques ont leur origine, (0,0), dans le coin supérieur gauche de la fenêtre de sortie. La coordonnée du curseur x pixel augmente de gauche à droite et la coordonnée y augmente vers le bas. Les informations concernant l'emplacement actuel du curseur se réfèrent toujours à la fenêtre de sortie du programme (généralement tout l'écran du moniteur). Lorsque vous utilisez plusieurs fenêtres à la fois, les informations se réfèrent à la fenêtre actuellement active.

ANIMATE

ANIMATE array%, x%, y%, view%

La commande ANIMATE contrôle la position et la séquence d'affichage de chacun des objets graphiques mobiles que vous avez chargés dans le tableau d'entiers spécifié. Ces objets graphiques sont vaguement appelés sprites. Associez chaque commande ANIMATE que vous utilisez à un sprite particulier en spécifiant le nom du tableau du sprite.

Faites suivre le nom du tableau d'une liste de paramètres séparés par des virgules. Cette liste se compose des coordonnées du coin supérieur gauche du sprite, x% et y% (données en pixels) et du numéro de vue que vous souhaitez afficher. Le fichier que vous avez enregistré après avoir modifié votre sprite garde une trace de la taille et du nombre de vues du sprite. Si vous spécifiez la vue numéro 2, ABasiC récupère le nombre d'octets par vue et accède à l'élément de tableau approprié pour récupérer les informations à afficher.

L'animation sur un Amiga est similaire à l'animation d'un film : en remplaçant rapidement une vue de votre sprite par une autre au même endroit de l'écran, vous créez l'illusion de mouvement.

  1. 20 DIM KAT1%(340)
  2. 30 BLOAD KAT,VARPTR(KAT1% (0))
  3. 100 ANIMATE KAT1%(), 200, 50, 0

Lorsque vous exécutez le programme, ABasiC charge le fichier sprite KAT dans le tableau KAT1% () et affiche la vue 0.

AREA

AREA( [TO] x1,y1 [TO x2,y2 ...])

La commande AREA définit et remplit une zone fermée sur l'écran. Chaque zone doit comprendre au moins trois points. Si le mot-clef TO est le premier élément entre parenthèses, ABasiC utilise la position courante du curseur pixel comme premier point. Si la figure que vous voulez créer a plus de sommets que ne peut en contenir une ligne logique, utilisez la commande MAT AREA pour définir les points comme éléments de tableau. (MAT AREA est également un bon choix si vous souhaitez définir une zone une fois et l'utiliser plusieurs fois.)

Lorsque AREA s'exécute, il connecte automatiquement le dernier point spécifié au premier point et remplit la région. (Voir la commande DRAW pour faire des dessins au trait ouvert.) AREA utilise le motif de remplissage le plus récemment défini par la commande PATTERN. PATTERN utilise les couleurs actuellement attribuées à PENA et PENB.

Vous pouvez également choisir d'avoir ou non un contour visible en définissant la valeur de la variable système OUTLINE. Pour obtenir un contour visible pour une forme particulière, incluez l'instruction suivante avant d'exécuter l'instruction AREA.

  1. OUTLINE 1

Si OUTLINE est 1, ABasiC utilise la couleur actuelle de PENO et le motif LINEPAT actuel pour dessiner le contour. (Le modèle LINEPAT par défaut est une ligne pleine, 16 " 1" bits).

Si vous spécifiez ce qui suit :

  1. OUTLINE 0

le contour est invisible. Le motif remplit simplement la bordure définie par les sommets spécifiés.

  1. 10 PENA 7: PENB 6: PENO 12
  2. 15 FOR J = 0 to 3: READ SHAPE%(J):NEXT J
  3. 20 DRAWMODE 1: OUTLINE 1
  4. 30 PATTERN 4, SHAPE%()
  5. 40 AREA(10,10 TO 140,10 TO 70,90 TO 140,120 TO 10,120 TO 70,90)
  6. 100 DATA 0,0, 65535, 65535     

Lorsque vous exécutez le programme, le résultat est :

ASK CURSOR

ASK CURSOR x%, y%

La commande ASK CURSOR vous fournit l'emplacement actuel du curseur. La position horizontale (en pixels) et la position verticale (en lignes de balayage) sont placées dans les variables entières respectives x % et y % que vous spécifiez :

  1. 10 ASK CURSOR HOR%, VERT%
  2. 20 PRINT HOR%, VERT%

ASK MOUSE

ASK MOUSE x%, y%, b%

La commande ASK MOUSE fournit des informations sur la position de la souris et si le bouton gauche a été enfoncé depuis le dernier déplacement. (ABasiC n'a aucun moyen de détecter un clic du bouton droit.) Votre souris doit être dans le port souris gauche. Les variables que vous spécifiez reçoivent les valeurs suivantes :

Paramètres Descriptions
x% La position horizontale (en pixels) par rapport à la dernière fenêtre actuellement active dans laquelle le bouton a été cliqué.
y% La position verticale (en pixels) par rapport à la dernière fenêtre actuellement active dans laquelle le bouton a été cliqué.
b% L'état du bouton gauche depuis le dernier déplacement de la souris. Contient un 4 si le bouton a été cliqué et un 0 sinon.

Voici un exemple d'utilisation de la commande ASK MOUSE :

  1. 40 WHILE X1% < 340
  2. 50 GOSUB 200
  3. 60 ASK MOUSE X%, Y%, B%
  4. 70 IF B% <> 0 THEN GOSUB 450
  5. 80 WEND     

ASK RGB

ASK RGB integer,variable-1, variable-2,variable-3

La commande ASK RGB vous donne les informations de couleur dans le registre de couleur indiqué par l' entier spécifié. Ces informations incluent la combinaison actuelle de couleurs rouge, verte et bleue attribuée à ce registre. Les valeurs correspondantes vont dans les variables que vous fournissez, étant représentées sous la forme variable-1 à variable-3.

Par exemple, la valeur par défaut du registre 0 est :

Ainsi, l'instruction suivant :

  1. ASK RGB 0, R%, G%, B%

place les valeurs de 6, 9 et 15 dans les variables R%, G% et B%, respectivement.

L'entier que vous spécifiez doit être compris entre 0 et 31, bien que seuls les 16 premiers registres aient des couleurs définies. Les valeurs de registre de couleur en dehors de l'intervalle produisent une erreur. Reportez-vous au tableau intitulé «Valeurs par défaut des registres de couleur» à la fin de cette page pour connaître les valeurs par défaut des 16 premiers registres de couleur.

ASK WINDOW

ASK WINDOW width%, height%

Utilisez la commande ASK WINDOW pour connaître la taille de la fenêtre de sortie actuelle. ASK WINDOW place la largeur (en pixels) dans la première variable entière que vous spécifiez et la hauteur dans la deuxième variable entière.

BOX

BOX(x1,y1[;x2,y2]) [,fill]

La commande BOX dessine un rectangle dont le coin supérieur gauche est à x1, y1. Vous pouvez éventuellement spécifier les coordonnées x2, y2 pour définir le coin inférieur droit. Sinon, BOX utilise le coin inférieur droit de la fenêtre de sortie actuelle.

BOX utilise la couleur actuelle de PENO et le motif LINEPAT actuel pour dessiner le contour de la boîte. Le paramètre fill doit être 0 ou 1 pour indiquer s'il faut remplir la case avec le PATTERN actuel (en utilisant les couleurs PENA et PENB actuelles). Si vous spécifiez 0, la case est vide.

  1. 10 BOX(20,20 ; 80,90),1

Lorsque vous exécutez le programme, le résultat est :

CIRCLE

CIRCLE [ ( x ,y ) ] ,radius [,aspect ]

Utilisez la commande CIRCLE pour dessiner un cercle ou une ellipse centré sur les coordonnées en pixels x,y. CIRCLE utilise la couleur PENO actuelle. Cependant, il dessine le cercle en une ligne pleine et ignore le motif LINEPAT actuel.

Si vous ne spécifiez pas de coordonnées, CIRCLE utilise la position actuelle du curseur de pixel. Vous devez également spécifier le rayon. Les unités horizontales (x) de l'Amiga ne sont pas proportionnelles à ses unités verticales (y). Le rayon que vous spécifiez est interprété comme des unités horizontales.

Le paramètre d'aspect facultatif est le rapport hauteur/largeur :

h/l

Le rapport par défaut est 1/1 ou 1 ; c'est un cercle. Une ellipse dont la hauteur est égale à la moitié de sa largeur a un aspect de 1/2, soit 0,5.

L'instruction CIRCLE suivante dessine la figure ci-dessous :

  1. CIRCLE (30,120), 14, .25

on obtiendra le résultat suivant :

Si vous souhaitez remplir un cercle avec un motif, exécutez d'abord l'instruction CIRCLE. Exécutez ensuite une instruction PAINT avec des coordonnées à l'intérieur du cercle.

DRAW

DRAW ( [TO] x1,y1 [ TO x2,y2...] ) [,Color]

Utilisez la commande DRAW pour tracer une ligne entre les points spécifiés. DRAW affiche un seul point si vous ne spécifiez qu'une seule paire de coordonnées. Deux paires de coordonnées décrivent une ligne. Pour tracer une ligne depuis la position actuelle du curseur pixel jusqu'au point (x1,y1), placez le mot-clef TO devant la première paire de coordonnées.

Si vous placez une virgule et un numéro de registre de couleur après la liste des paires de coordonnées, DRAW utilise cette couleur. Sinon, il utilise la couleur actuellement attribuée à PENA. (Si vous souhaitez utiliser la même couleur avec plusieurs commandes DRAW, il est plus efficace d'attribuer d'abord la couleur souhaitée à PENA.) DRAW utilise le motif de ligne actuel (voir la commande LINEPAT).

Trois paires de coordonnées ou plus décrivent une forme ouverte. Contrairement à la commande AREA, DRAW ne connecte pas automatiquement le dernier point au premier. Le nombre de sommets ne peut pas dépasser le nombre de paires de coordonnées que vous pouvez adapter sur une seule ligne logique. Pour faire un dessin plus complexe, utilisez la commande MAT DRAW. (MAT DRAW est également un bon choix si vous souhaitez définir une forme une fois et l'utiliser plusieurs fois.)

  1. 10 DRAW (20,20 TO 100,30 TO 45,120)
  2. 20 DRAW (TO 45,50)

Lorsque vous exécutez le programme, le résultat est :

DRAWMODE

DRAWMODE integer

La commande DRAWMODE définit le mode des opérations de tracé de ligne, de remplissage de zone et de texte. Spécifiez un entier entre 0 et 2 comme suit :

Valeur Description
0 Remplace la couleur affichée au point de dessin par la couleur PENA actuelle ; modifie uniquement les pixels affectés sans perturber l'arrière-plan.
1 Écrase complètement l'affichage de l'écran actuel (ou la fenêtre de sortie actuelle) avec les couleurs PENA et PENB. Pour toute écriture bicolore sur l'écran (par exemple, texte avec fond rempli ou remplissage de zone à motifs), remplace chaque bit "1" par la couleur de PENA et chaque bit "0" par celui de PENB.
2 Dessine au-dessus de l'arrière-plan sans bloquer ce que l'arrière-plan transparaît (c'est-à-dire que ce mode effectue un XOR - ou exclusif - sur le point de dessin avec la couleur PENA). Si la couleur de PENA est la même que celle de l'arrière-plan, efface le point de dessin.

La valeur DRAWMODE par défaut est zéro. Si vous spécifiez un paramètre étant en dehors de l'intervalle, le programme utilise zéro.

  1. 10 PENA 2 : PENB 4
  2. 20 FONT 1 : DRAWMODE 0
  3. 30 PRINT AT (3,8); "Simple texte"
  4. 40 AREA (10,10 TO 120,90 TO 30,60)

Lorsque vous exécutez le programme, le résultat est :

Voir aussi la commande AREA pour un exemple de programmation de DRAWMODE 1.

FONT

FONT integer

La commande FONT définit la police de caractères de texte active sur la valeur entière que vous spécifiez. L'entier doit être compris entre 0 et 2 :

Valeur Description
0 Définit la police de caractères à la taille par défaut actuelle contenue dans le fichier Preferences. Il s'agit initialement d'une taille de 40 colonnes (basse résolution). Si vous changez la taille de police en 32 colonnes dans le fichier Preferences, le périphérique affiche une taille de police de caractères de 32 colonnes lorsque vous l'allumez.
1 Définit la police de caractères à une taille de 40 colonnes (40 caractères par ligne). La taille des caractères est de 8 par 8 pixels. (En haute résolution, définit la police de caractères sur une taille de 80 colonnes.)
2 Définissez la police de caractères sur une taille de 32 colonnes. La taille des caractères est de 10 pixels de large sur 9 pixels de haut. (En haute résolution, définit la police de caractères sur une taille de 64 colonnes.)

La valeur FONT par défaut est zéro et est initialisée à une taille de 40 colonnes. Si vous spécifiez un paramètre étant en dehors de l'intervalle, le programme utilise zéro. Voir la commande DRAWMODE pour un exemple de programmation de FONT.

GSHAPE

GSHAPE (x,y), array% [,mode]

Utilisez la commande GSHAPE (Get SHAPE) pour afficher une copie d'une partie rectangulaire de l'affichage que vous avez enregistré à l'aide de la commande SSHAPE. Les coordonnées (x,y) spécifient la position en pixels du coin supérieur gauche du rectangle sur l'écran (ou la fenêtre de sortie actuelle).

La commande SSHAPE ayant enregistré le rectangle définit sa taille. SSHAPE enregistre le rectangle dans le tableau d'entiers spécifié ; vous spécifiez ensuite le même nom de tableau dans la commande GSHAPE correspondante.

Le mode facultatif doit être un entier compris entre 0 et 2, l'une des valeurs DRAWMODE. (Voir la commande DRAWMODE pour une description de ces valeurs.) La valeur par défaut est zéro.

  1. 10 DIM BOXES%(500)
  2. 20 FOR J=2 TO 50 STEP 2
  3. 30 PENO J MOD 3 + 3
  4. 40 BOX(50,50; 50+J, 50+J)
  5. 50 NEXT J
  6. 60 SSHAPE(50,50,110,110), BOXES%()
  7. 40 GSHAPE (120,50), BOXES%()

Lorsque vous exécutez le programme, le résultat est :

La boîte d'origine à gauche est dupliquée à droite par GSHAPE.

LINEPAT

LINEPAT integer

La commande LINEPAT définit le motif pour le dessin des lignes. Vous pouvez spécifier n'importe quelle expression entière, mais LINEPAT n'utilise que les 16 bits de poids faible. LINEPAT utilise la couleur PENA actuelle pour les bits «1» dans le motif et laisse les bits «0» seuls. Pour les figures fermées que vous définissez avec les commandes AREA et BOX, LINEPAT utilise la couleur PENO actuelle.

La valeur LINEPAT par défaut est 65535. Cette valeur est simplement seize «1» bits sous forme binaire :

1111111111111111

Si vous exécutez une instruction DRAW avec le modèle par défaut, cela pourrait ressembler à ceci :

Vous pouvez obtenir un motif de ligne point-tiret avec le nombre binaire suivant :

1001110010011100

Cela se traduit par 156 x 256 (octet de poids fort) + 156 (octet de poids faible), soit 40092 en décimal. Vous spécifiez ce modèle avec l'une des commandes suivantes :

  1. LINEPAT 40092

ou

  1. LINEPAT &100111001001110

En utilisant le nouveau motif LINEPAT, le dessin ci-dessus ressemblerait à ceci :

LOCATE

LOCATE (x,y)

Utilisez la commande LOCATE pour déplacer le curseur pixel à la position que vous spécifiez. LOCATE a pour effet de sélectionner le point de dessin et de le placer aux coordonnées de pixel spécifiées. Par exemple :

  1. 10 LOCATE (120,10)
  2. 20 DRAW (TO 100,100)

Ces deux lignes positionnent le curseur de pixel au point (120,10) et tracent une ligne de là au point (100,100).

LOCATE est utile pour des applications telles que l'étiquetage de graphiques commerciaux. Par exemple, vous pouvez placer des marqueurs à des emplacements précis sur un graphique avec une boucle, comme dans l'exemple de programmation suivant :

  1. 30 DRAW (23,10 TO 23,100)
  2. 50 FOR K = 20 TO 80 STEP 20
  3. 60 LOCATE (20, K)
  4. 70 DRAW (TO 25, K)
  5. 80 PRINT AT (1, (K)/8); K;
  6. 90 NEXT K

Lorsque vous exécutez le programme, le résultat est :

MAT AREA

MAT AREA integer, array%

Utilisez la commande MAT AREA pour définir et remplir une zone fermée sur l'écran. (Vous pouvez utiliser la commande AREA pour les formes ayant suffisamment de sommets pour tenir sur une seule ligne de programme.) Chaque zone doit inclure au moins trois points. L'entier que vous spécifiez indique le nombre de paires de coordonnées à lire dans le tableau spécifié. Les éléments du tableau sont les coordonnées des sommets successifs. Par exemple, lorsque ABasiC rencontre l'instruction :

  1. MAT AREA 3, TRI%()

le tableau TRI%() doit avoir six éléments décrivant trois points sur l'écran de sortie actuel :

x1, y1, x2, y2, x3, y3

Lorsque MAT AREA s'exécute, il connecte automatiquement le dernier point spécifié avec le premier point et remplit la région. (Voir la commande MAT DRAW pour créer des dessins complexes à lignes ouvertes.) MAT AREA utilise le motif de remplissage le plus récemment défini par la commande PATTERN. PATTERN utilise les couleurs actuellement attribuées à PENA et PENB.

Vous pouvez également choisir d'avoir ou non un contour visible en définissant la valeur de la variable système OUTLINE. Pour obtenir un contour visible pour une forme particulière, incluez l'instruction suivante avant d'exécuter l'instruction MAT AREA.

  1. OUTLINE 1

Si OUTLINE est 1, ABasiC utilise la couleur actuelle de PENO et le motif LINEPAT actuel pour dessiner le contour. (Le motif LINEPAT par défaut est une ligne pleine, seize bits «1»). Si vous spécifiez ce qui suit :

  1. OUTLINE 0

le contour est invisible. Le motif remplit simplement la bordure définie par les sommets spécifiés.

  1. 10 DIM TRIANGLE%(12)
  2. 20 FOR I=0 TO 5
  3. 30 READ TRIANGLE%(I)
  4. 50 NEXT I
  5. 60 MAT AREA 3, TRIANGLE%()
  6. 100 DATA 200, 40, 400, 40, 300, 100

Lorsque vous lancez le programme, le résultat est :

MAT DRAW

MAT DRAW integer,array%

Utilisez la commande MAT DRAW pour définir et tracer des lignes entre les points que vous spécifiez dans le tableau. (Vous pouvez utiliser la commande DRAW pour les formes ayant suffisamment de sommets pour tenir sur une seule ligne de programme.) Chaque forme doit inclure au moins deux points. L'entier que vous spécifiez indique le nombre de paires de coordonnées à lire dans le tableau spécifié. Les éléments du tableau sont les coordonnées des sommets successifs. Par exemple, lorsque ABasiC rencontre l'instruction :

  1. MAT DRAW 4, Z% ()

le tableau Z%() doit avoir huit éléments décrivant quatre points sur l'écran de sortie actuel :

x1, y1, x2, y2, x3, y3, x4, y4

MAT DRAW utilise la couleur actuellement attribuée à PENA et le motif de ligne actuel (voir la commande LINEPAT).

Trois paires de coordonnées ou plus décrivent une forme ouverte. Contrairement aux commandes AREA et MAT AREA, MAT DRAW ne relie pas automatiquement le dernier point au premier.

  1. 10 DIM Z%(12)
  2. 20 FOR I=0 TO 7
  3. 30 READ Z%(I)
  4. 50 NEXT I
  5. 60 MAT DRAW 4, Z%()
  6. 100 DATA 400, 20, 500, 20, 400, 90, 500, 90

Lorsque vous exécutez le programme, le résultat est :

PAINT

PAINT (x,y) [,mode]

La commande PAINT remplit une zone avec le motif actuel (voir la commande PATTERN). PAINT utilise le DRAWMODE actuel et les couleurs actuellement attribuées à PENA et PENB. Selon le mode que vous utilisez, PAINT peut également utiliser PENO.

PAINT utilise l'emplacement (x,y) comme point de départ pour le remplissage. Le comportement de la commande dépend du mode (0 ou 1) que vous utilisez :

Valeur Description
0 Remplit tous les pixels adjacents du point de départ à la limite définie par PENO (la couleur du crayon de contour). C'est le mode par défaut.
1 Remplit tous les pixels adjacents de la même couleur que celle du point de dessin (x,y) et s'arrête s'il y a une autre couleur.

Par exemple, supposons que vous ayez le motif de remplissage PATTERN actuellement défini sur seize "1" bits, ou un remplissage solide, et que vous ayez créé la figure suivante sur l'écran que vous souhaitez PAINT :

L'instruction :

  1. PAINT (40,50)

faite ressembler le dessin à ceci :

Le motif s'arrête uniquement aux frontières définies par PENO. Si vous spécifiez le mode 1 pour le même dessin, c'est-à-dire :

  1. PAINT(40,50),1

ressemblera à ceci :

Dans le deuxième exemple, le motif s'arrête lorsqu'il rencontre une couleur différente de la couleur au point (40,50).

PATTERN

PATTERN integer, array%

La commande PATTERN vous permet de définir le motif de remplissage utilisé par les commandes de remplissage, telles que AREA et PAINT. Spécifiez le nombre d'entiers que vous souhaitez inclure dans le modèle comme premier paramètre. Spécifiez ensuite un tableau contenant au moins autant de valeurs de modèle.

Le motif définit toujours une zone rectangulaire. La taille du rectangle dépend du nombre d'entiers que vous spécifiez et de la plus petite puissance de deux dans laquelle ils s'intègrent, comme suit :

Nombre d'entiers Taille du rectangle
1 à 2 2 mots de 16 bits (un mot équivaut à deux octets) :
3 à 4 4 mots de 16 bits :
5 à 8 8 mots de 16 bits :
9 à 16 16 mots de 16 bits :

Le motif défini commence par rapport à l'emplacement actuel du curseur de pixel et se comporte un peu comme une «graine», en ce sens qu'il remplit en douceur la zone ou la fenêtre de sortie aussi loin que possible.

Si vous souhaitez créer le motif en damier suivant :

spécifiez l'instruction PATTERN suivante :

  1. PATTERN 4, CHECKER%()

où les quatre premiers éléments du tableau CHECKER%() sont :

  1. 255, 65280, 255, 65280

Le binaire 0000000011111111 est 255 ; le binaire 1111111100000000 est 65280.

Pour les modèles plus grands ou plus complexes, esquissez simplement le modèle que vous voulez, traduisez-le en un modèle de 1 et 0 (un nombre binaire de 16 bits) et calculez l'équivalent décimal du résultat. Le nombre décimal est l'entier que vous spécifiez pour l'élément de tableau correspondant à ce carré.

Si votre paramètre entier n'est pas une puissance de deux, ABasiC remplit les cellules restantes du rectangle avec tous les bits "0". Par exemple, si vous spécifiez l'instruction suivante :

  1. PATTERN 5, MISC%()

où les cinq premiers éléments du tableau MISC%() sont :

  1. 255,65535,65535,255,65280

vous décrivez un modèle 8 x 16 bits. ABasiC attribue le binaire 0 aux entiers 6 à 8 pour compléter le modèle :

PENA

PENA integer

Utilisez la commande PENA pour spécifier le contenu du registre de couleurs à utiliser comme couleur de crayon de dessin principale. Le stylo principal est celui utilisé pour la couleur de premier plan ; cela inclut le dessin au trait, l'impression de texte et les bits "1" dans les remplissages de zone.

Le paramètre doit être un entier compris entre 0 et 31. Si vous spécifiez une valeur en dehors de l'intervalle, les cinq bits inférieurs sont utilisés. (Six bits ou plus décrivent un minimum de 32 binaires, ce qui est trop grand pour faire référence à l'un des registres de couleur.) Notez que seuls les 16 premiers registres de couleur sont utilisés dans les conditions par défaut. Les 16 supérieurs (registres 16 à 31) contiennent des compositions de couleur en double des 16 valeurs inférieures. Vous devez utiliser la commande RGB pour mettre des valeurs différentes dans les 16 registres supérieurs.

  1. PENA 12

Cette instruction définit la couleur principale du crayon sur la valeur actuelle du registre de couleur 12. Les valeurs par défaut des 16 premiers registres de couleur sont répertoriées dans le tableau intitulé «Valeurs par défaut du registre de couleur» à la fin de cette page.

PENB

PENB integer

Utilisez la commande PENB pour spécifier le contenu du registre de couleurs à utiliser comme couleur du crayon secondaire. Le crayon secondaire est celui utilisé pour l'arrière-plan (les bits «0») dans les motifs de remplissage de zone.

La discussion sur l'intervalle et les limites des valeurs PENA s'applique également à la PENB.

PENO

PENO integer

Utilisez la commande PENO pour définir la couleur d'un contour de zone sur celle actuellement définie pour le registre de couleur spécifié de 0 à 31. La couleur de contour est celle utilisée pour délimiter les zones à remplir.

Si vous définissez la variable système OUTLINE 1, ABasiC utilise la valeur PENO actuelle pour dessiner un contour visible pour la forme. La couleur de PENO est utilisée avec les commandes suivantes :

AREA, BOX et MAT AREA utilisent tous le modèle LINEPAT actuel. CIRCLE utilise simplement la couleur de PENO pour créer un contour solide.

Si vous spécifiez OUTLINE 0, ABasiC ignore la couleur PENO et exécute les formes de remplissage avec un contour invisible.

RGB

RGB integer, integer-1, integer-2,integer-3

La commande RGB permet de définir la composition des couleurs dans le registre spécifié (le premier entier). La couleur est une combinaison des couleurs rouge (integer-1), vert (integer-2) et bleu (integer-3). Le registre de couleur que vous sélectionnez doit être compris entre 0 et 31, et les valeurs que vous donnez pour les variables de couleur respectives doivent être des nombres entiers compris entre 0 et 15. Par exemple, pour définir le vert pur pour le registre de couleur 4, utilisez l'instruction suivante :

  1. RGB 4, 0,15,0

Autrement dit, la valeur du vert est la valeur maximale de 15, tandis que celles du rouge et du bleu sont nulles.

Voir le tableau à la fin de cette sous-section intitulé «Valeurs par défaut des registres de couleur» pour les valeurs par défaut des registres de couleur 0 à 15.

SSHAPE

SSHAPE (x1,y1 ;x2,y2) ,array%

La commande SSHAPE (Save SHAPE) vous permet de sauvegarder temporairement une partie rectangulaire de l'affichage. La première paire de coordonnées correspond à la position en pixels du coin supérieur gauche du rectangle. La deuxième paire de coordonnées définit le coin inférieur droit du rectangle. Le tableau d'entiers enregistre le contenu d'affichage du rectangle. (Vous devez dimensionner (DIM) ce tableau à une taille adéquate avant d'utiliser la commande SSHAPE.)

Vous pouvez utiliser la commande ASK MOUSE pour trouver les coordonnées de n'importe quelle position sur l'écran (ou la fenêtre de sortie actuelle). Vous devez également utiliser la commande GRAPHIC avec une valeur différente de zéro pour empêcher le défilement. Supposons que vous ayez une figure que vous souhaitez enregistrer avec SSHAPE à l'écran. Déplacez simplement la souris là où vous voulez que le coin supérieur gauche du rectangle, comme illustré ci-dessous :

Utilisez la commande ASK MOUSE en mode immédiat et enregistrez ses coordonnées (x1,y1). Déplacez la souris vers le coin inférieur droit d'un rectangle imaginaire contenant toute la figure que vous souhaitez enregistrer (x2, y2) et exécutez à nouveau ASK MOUSE. Multipliez les différences de dimension - (x2-x1) * (y2-y1) - par 4, la profondeur d'affichage. Divisez ce nombre par 32 pour obtenir le nombre de mots. Le résultat est le nombre que vous devez utiliser pour dimensionner le tableau dans lequel vous enregistrez le rectangle.

Vous devrez peut-être augmenter la taille à laquelle vous dimensionnez le tableau si le rectangle traverse une limite de mot (c'est-à-dire un multiple pair de 32 pixels) dans une ou les deux dimensions. Étant donné que les grands tableaux consomment de la mémoire, maintenez la taille du rectangle au minimum. Vous trouverez un exemple de programmation utilisant SSHAPE avec la description de la commande GSHAPE.

Fonctions graphiques

PIXEL

PIXEL (x, y)

La fonction PIXEL renvoie le numéro de registre de couleur actuel du pixel à la position (x,y).

  1. 10 N = PIXEL (140,25)
  2. 20 PRINT "La couleur des pixels a 140,25 est ";N

Supposons que la couleur à 140,25 soit le registre 4. Lorsque vous exécutez le programme, le résultat est :

La couleur des pixels a 140,25 est 4

Valeurs par défaut des registres de couleur

Numéro de registre Rouge Vert Bleu Description
0 6 9 15 Bleu foncé
1 0 0 0 Noir
2 15 15 15 Blanc
3 15 9 10 Rouge cerise
4 14 3 0 Rouge pompier
5 15 11 0 Orange
6 15 15 2 Jaune
7 11 15 0 Vert citron
8 5 13 0 Vert
9 0 14 13 Aqua
10 7 13 15 Bleu ciel
11 12 0 14 Pourpre
12 15 2 14 Violet
13 15 13 11 Bronze
14 12 9 8 Brun
15 11 11 11 Gris


Dernière mise à jour : Vendredi, le 12 mai 2023