CIRCLE, LINE, WINDOW

GW-Basic, utilisé par PC-Basic

Exemple de programmation

PC-BASIC

CIRCLE

Pour dessiner un cercle, une ellipse et des angles sur l'écran lors de l'utilisation du mode Graphiques.

CIRCLE(xcenter, ycenter), radius[,[color][,[start],[end][,aspect]]]

xcenter et ycenter sont les coordonnées x et y du centre de l'ellipse, et radius est le rayon (mesuré le long de l'axe principal) de l'ellipse. Les quantités xcenter et ycenter peuvent être des expressions. Les attributs de centre peuvent utiliser des coordonnées absolues ou relatives.

color spécifie la couleur de l'ellipse. Sa valeur dépend du mode d'écran en cours. Voir les instructions SCREEN, COLOR, PALETTE pour plus d'informations sur l'utilisation des couleurs dans différents modes d'écran.

Les paramètres d'angle de début et de fin sont des arguments en radian entre -2π et 2π qui spécifient où le dessin de l'ellipse doit commencer et se terminer. Si début ou fin est négatif, l'ellipse est reliée au point central par une ligne et les angles sont traités comme s'ils étaient positifs (notez que cela est différent de l'ajout de 2π).

aspect décrit le rapport du rayon x au rayon y (x:y). Le rapport d'aspect par défaut dépend du mode d'écran, mais donne un cercle visuel dans l'un ou l'autre des modes graphiques, en supposant un rapport d'aspect d'écran standard de 4:3. Si le rapport d'aspect est inférieur à 1, alors le rayon est donné en x-pixels.

S'il est supérieur à 1, le rayon est donné en pixels y. Dans de nombreux cas, un rapport d'aspect de 1 donne de meilleures ellipses en mode de résolution moyenne. Cela permet également de dessiner l'ellipse plus rapidement. L'angle de départ peut être inférieur à l'angle de fin.

Exemple 1:

10 SCREEN1: CIRCLE(100,100), 50

Exemple 2:

1 ' This will draw 17 ellipses
10 CLS
20 SCREEN 1
30 FOR R=160 TO 0 STEP-10
40 CIRCLE (160,100),R,,,,5/18
50 NEXT

Exemple 3:

10 'This will draw 5 spheres
20 GOTO 160
50 IF VERT GOTO 100
60 CIRCLE (X,Y),R,C,,,.07
70 FOR I = 1 TO 5
80 CIRCLE (X,Y),R,C,,,I*.2:NEXT I
90 IF VERT THEN RETURN
100 CIRCLE (X,Y),R,C,,,1.3
110 CIRCLE (X,Y),R,C,,,1.9
120 CIRCLE (X,Y),R,C,,,3.6
130 CIRCLE (X,Y),R,C,,,9.8
140 IF VERT GOTO 60
150 RETURN
160 CLS: SCREEN 1: COLOR 0,1: KEY OFF: VERT=0
170 X=160: Y=100: C=1: R=50: GOSUB 50
180 X=30: Y=30: C=2: R=30: GOSUB 50
190 X=30: Y=169: GOSUB 50
200 X=289: Y=30: GOSUB 50
210 X=289: Y=169: GOSUB 50
220 LINE (30,30)-(289,169),1
230 LINE (30,169)-(289,30),1
240 LINE (30,169)-(289,30),1,B
250 Z$=INKEY$: IF Z$="" THEN 250

LINE

Pour tracer des lignes et des cases sur l'écran.

LINE [(x1,y1)]-(x2,y2) [,[attribute][,B[F]][,style]]

x1,y1 et x2,y2 spécifient les extrémités d'une ligne.

Le mode de résolution est déterminé par l'instruction SCREEN.

L'attribut spécifie la couleur ou l'intensité du pixel affiché (voir les instructions SCREEN, COLOR, PALETTE ).

B (boîte) dessine une boîte avec les points (x1,y1) et (x2,y2) aux coins opposés.

BF (boîte remplie) dessine une boîte (comme ,B) et remplit l'intérieur avec des points.

Noter

Si l'attribut n'est pas spécifié, deux virgules doivent être utilisées avant B ou BF.

LINE prend en charge le style d'argument supplémentaire. style est un masque d'entier 16 bits utilisé lors de l'affichage des pixels à l'écran. C'est ce qu'on appelle le style de ligne.

Chaque fois que LINE stocke un point sur l'écran, il utilise le bit en circulation actuel avec style. Si ce bit est 0, aucun stockage ne sera effectué. Si le bit est un 1, alors un stockage normal est effectué. Après chaque point, la position de bit suivante dans le style est sélectionnée.

Puisqu'un bit 0 dans le style n'efface pas l'ancien contenu, vous souhaiterez peut-être dessiner une ligne d'arrière-plan avant une ligne stylée, afin de forcer un arrière-plan connu.

style est utilisé pour les lignes et les cases normales, mais n'est pas autorisé pour les cases remplies.

Si le paramètre BF est utilisé avec le paramètre de style, une erreur "Syntaxe" se produira.

Lorsque des valeurs hors limites sont données dans l'instruction LINE, les coordonnées hors limites ne sont pas visibles à l'écran. C'est ce qu'on appelle l'écrêtage de ligne.

Dans la syntaxe présentée ici, la forme de coordonnées STEP (décalage x, décalage y) n'est pas affichée. Cependant, ce formulaire peut être utilisé partout où une coordonnée est utilisée.

Dans une instruction LINE, si la forme relative est utilisée sur la deuxième coordonnée, elle est relative à la première coordonnée.

Après une instruction LINE, le dernier point référencé est x2, y2.

La forme la plus simple de LINE est la suivante :

LINE -(x2,y2)

Cela trace une ligne du dernier point référencé au point (x2, y2) dans la couleur de premier plan.

Exemples:

LINE (0,100)-(639,100)
Dessine une ligne horizontale qui divise l'écran en deux de haut en bas dans SCREEN 2

LINE (160,0)-(160,199)
Dessine une ligne verticale qui divise l'écran en deux de gauche à droite dans SCREEN 1 ; fait une division un quart/trois quarts dans SCREEN 2.

LIGNE (0,0)-(319,199)
Dessine une ligne diagonale du coin supérieur gauche au coin inférieur droit de l'écran dans l'ÉCRAN 1, et du coin supérieur gauche au centre en bas de l'écran dans l'ÉCRAN 2.

LINE (10,10)-(20,20),2
Dessine des lignes en couleur 2 (voir l'instruction COLOR).

10 CLS
20 LINE -(RND*319,RND*199),RND*4
30 GOTO 20
Dessinez des lignes en utilisant des attributs aléatoires.

10 FOR X=0 TO 319
20 LINE (X,0)-(X,199),X AND 1
30 NEXT
Dessine un motif alterné : ligne activée, ligne désactivée.

10 CLS
20 LINE -(RND*639,RND*199),RND*2,BF
30 GOTO 20
Dessine des lignes sur tout l'écran.

LINE (0,0)-(100,175),,B
Dessine une boîte carrée dans le coin supérieur gauche de l'écran.

LINE (0,0)-(100,175),,BF
Dessine la même case et la remplit.

LINE (0,0)-(100,175),2,BF
Dessine la même case remplie en magenta.

LINE (0,0)-(100,350),,B
Dessine la même boîte si SCREEN 2 est spécifié.

400 SCREEN 1
410 LINE (160,100)-(160,199),,,&HCCCC
Dessine une ligne pointillée verticale au centre de l'écran dans SCREEN 1.

220 SCREEN 2
230 LINE (300,100)-(400,50),,B,&HAAAA
Dessine un rectangle avec une ligne pointillée dans SCREEN 2.

LINE (0,0)-(160,100),3,,&HFF00
Dessine une ligne pointillée du coin supérieur gauche au centre de l'écran.

WINDOW

Pour dessiner des lignes, des graphiques et des objets dans un espace non délimité par les limites physiques de l'écran.

WINDOW[[SCREEN](x1,y1)-(x2,y2)]

(x1,y1), (x2,y2) sont les coordonnées définies par l'utilisateur. Ces coordonnées, appelées coordonnées mondiales, peuvent être n'importe quel nombre à virgule flottante simple précision. Ils définissent l'espace de coordonnées universel que les instructions graphiques mappent dans l'espace de coordonnées physiques, tel que défini par l'instruction VIEW.

WINDOW est la région rectangulaire dans l'espace de coordonnées mondial. Il permet le zoom et le panoramique. Il permet à l'utilisateur de dessiner des lignes, des graphiques et des objets dans un espace non limité par les limites physiques de l'écran. Pour ce faire, l'utilisateur spécifie les paires de coordonnées mondiales (x1, y1) et (x2, y2.) GW-BASIC convertit ensuite les paires de coordonnées mondiales en paires de coordonnées physiques appropriées pour un affichage ultérieur dans l'espace de l'écran.

Window inverse, avec l'attribut screen omis, la coordonnée y sur les instructions graphiques suivantes. Cela place la coordonnée (x1,y1) en bas à gauche et la coordonnée (x2,y2) en haut à droite de l'écran. Cela permet de visualiser l'écran en vraies coordonnées cartésiennes.

Les coordonnées ne sont pas inversées lorsque l'attribut SCREEN est inclus. Cela place la coordonnée (x1,y1) dans le coin supérieur gauche et la coordonnée (x2,y2) dans le coin inférieur droit de l'écran.

L'instruction WINDOW trie les paires d'arguments x et y par ordre croissant. Par exemple:

WINDOW (50, 50)-(10, 10)

Devient

WINDOW (10, 10)-(50, 50)

Ou

WINDOW (-2, 2)-(2, -2)

Devient

WINDOW (-2, -2)-(2, 2)

Toutes les paires de coordonnées de x et y sont valides, sauf que x1 ne peut pas être égal à x2 et y1 ne peut pas être égal à y2.

WINDOW sans arguments désactive les instructions de fenêtre précédentes.

Exemple 1:

Si vous tapez :

NEW: SCREEN 2

l'écran utilise les attributs de coordonnées standard :

(0, 0)           (320, 0)         (639, 0)
  ↓ y increases
                (320, 100)

(0, 199)        (320, 199)      (639, 199)

Exemple 2:

Si vous tapez :

WINDOW (-1, -1)-(1, 1)

l'écran utilise les coordonnées cartésiennes :

(-1, 1)           (0, 1)            (1, 1)
  ↑ y increases
                  (0, 0)
  ↓ y decreases
(-1, -1)          (0, -1)           (1, -1)

Exemple 3:

Si vous tapez :

WINDOW SCREEN (-1, -1)-(1, 1)

l'écran utilise la coordonnée non inversée :

(-1, -1)          (0, -1)           (1, -1)
 ↑ y decreases
                  (0, 0)
 ↓ y increases
(-1, 1)           (0, 1)            (1, 1)

RUN, SCREEN et WINDOW sans attribut désactivent toutes les définitions WINDOW et ramènent l'écran à ses coordonnées physiques normales.

 

 

 

 

 

 

 

Recherche personnalisée