Aller en cercles

GW-BASIC  (PC-BASIC)

Initiation au langage Basic

Est-ce que toutes ces discussions sur SCREEN et COLOR, vous font tourner en rond ?

Si oui, vous n'avez encore rien vu !

Par exemple, vous pouvez créer un cercle ou une ellipse complet(e), ou un cercle ou une ellipse partiel(le) à l'aide d'une seule instruction, CIRCLE.

Voici la syntaxe de CERCLE :

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.

Voir CIRCLE, LINE, WINDOW pour plus de détails.

Pour dessiner un cercle, vous n'avez besoin que du centre (x,y) et du rayon (radius), qui est la distance du centre en points.

Tout d'abord, comptez sur l'axe x, puis vers le bas sur l'axe y pour localiser le centre souhaité. Alors. une fois que vous avez spécifié ce point, indiquez le rayon du cercle. Le plus grand rayon qui tient sur l'écran dépend de la résolution, si le rayon est supérieur à l'écran, le cercle "natte" contre les bords de l'écran.

Tapez et exécutez ce programme:

5 CLS
10 SCREEN 1:PRINT "SCREEN 1"
20 GOSUB 1000
30 SCREEN 2:PRINT "SCREEN 2"
40 GOSUB 1000
50 SCREEN 7:PRINT "SCREEN 7"
60 GOSUB 1000
70 SCREEN 8:PRINT "SCREEN 8"
80 GOSUB 1000
90 SCREEN 9:PRINT "SCREEN 9"
100 GOSUB 1000
110 END
1000 CIRCLE(100,100), 50
1010 A$=INKEY$:IF A$ = "" THEN 1010
1020 RETURN

Programme faites-le vous même

Faites un programme pour générez une cible. Vous pouvez faire celui-ci de deux manières:

Ajoutez une ligne de programme distincte pour chaque cercle concentrique, mais utilisez un centre commun (coordonnées x,y).

Utilisez une boucle FOR ... NEXT avec un STEP 10 pour que l'ordinateur fasse le travail pour vous.

10 SCREEN 1
20 CLS
30 FOR RAYON = 1 TO 100 STEP 10
40 CIRCLE (128, 86),RAYON
50 NEXT RAYON
60 A$=INKEY$:IF A$=""THEN 60

Programme faites-le vous même

Avez-vous encore le programme de la maison que vous avez construite ?

Comment comptez-vous entrer dans la maison sans poignée de porte ? Utilisez CERCLE pour mettre une poignée de porte sur la porte d'entrée. Votre feuille de travail sur l'écran graphique est utile pour localiser le point exact dont vous avez besoin.

Remarque : Si vous utilisez une résolution moyenne ou basse, un cercle suffisamment petit pour servir de poignée de porte n'a pas beaucoup de détails. Exécutez le programme en SCREEN 9 pour plus de détails.

Colorier le cercle

Après avoir décidé du rayon du cercle, choisissez sa couleur.

10 SCREEN 8
20 CLS
30 CIRCLE (128,86) ,50

Maintenant, pour un peu de variété, changez la couleur en cyan (couleur 3) :

30 CIRCLE (128,86) ,50,3

C'est aussi simple que ça! Vous pouvez changer la couleur du cercle en n'importe laquelle des couleurs disponibles.

Mettre la pression

Avez-vous déjà pris un Hula-Hoop, un pneu de vélo ou une roue de buggy et l'avez-vous pressé à deux mains pour former une ellipse ?

De même, vous pouvez changer le cercle sur votre écran en une ellipse en utilisant l'option rapport hauteur/largeur (aspect).

La largeur de l'ellipse est égale au rayon. La hauteur est déterminée par aspect. Si aspect vaut 1, l'ordinateur dessine un cercle. Si aspect est supérieur à 1, il dessine une ellipse plus haute que large. Si aspect est inférieur à 1, il dessine une ellipse plus large que haute.

Par exemple, ce programme dessine un cercle :

10 SCREEN 8
20 CLS
30 CIRCLE (128,86) ,50

Si toutefois, vous modifiez aspect comme indiqué ici, le programme dessine une ellipse verticale :

30 CIRCLE (128,86),50,,,,8

Si vous modifiez aspect montré ici, il dessine une ellipse horizontale :

30 CIRCLE (128,86),50,,,,.1

30 CIRCLE (128,86),50,,,,1/8

Maintenant dessinons saturne:

10 SCREEN 8
20 CLS
30 CIRCLE (128,86) ,50
40 CIRCLE (128,86),50,,,,8

Du début à la fin

Supposons que vous vouliez dessiner seulement une partie d'une ellipse (un arc). Pour ce faire, vous devez lister le centre de l'ellipse (x,y), son rayon (r), et son rapport hauteur/largeur (aspect).

Si vous le souhaitez, vous pouvez faire précéder aspect de la couleur (color).

Remarque : Pour tracer un arc , vous devez spécifier aspect. Pour un arc normal, utilisez aspect 1.

À partir des informations ci-dessus, l'ordinateur connaît l'emplacement, la largeur et la hauteur de l'ellipse. Maintenant, vous pouvez lui dire quelle portion de l'ellipse dessiner.

Pour ce faire, spécifiez le début de l'arc (start, 0 à 1) et la fin (end, 0 à 1) de l'arc, en suivant le tableau ci-dessous. Gardez à l'esprit que l'ordinateur dessine toujours dans le sens des aiguilles d'une montre.

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

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π).

Voici un cercle avec les angles en degrés et en radians:

0 degré = 0 radians et 90 degré = π/2 (π/2 = 1,57)

pour convertir les degrés en radians

rad = deg * π/180 soit pour 90° rad = 90 * π/180  = 1.57 rad

30 CIRCLE (128,86),30,1,0,1.57,1

Programme faites-le vous même

La nuit est-elle tombée sur la maison que vous avez bâtie ? Si c'est le cas, vous voudrez peut-être faire la lumière sur le sujet en mettant un croissant de lune dans le coin.

Cela nécessite deux arcs qui se croisent et quelques essais et erreurs de votre part.

10 CIRCLE (200,40),30,15,1.57,4.71,2
20 CIRCLE (200,40),30,15,1.57,4.71,1

Modifiez les deux lignes ci-dessous et insérez-les dans le programme maison

Programme maison

10 SCREEN 7
20 CLS
30 LINE (72,168)-(200,72),10,B 'FRAME
40 LINE (72,72)-(136,36),10 'ROOF
45 LINE (200,72)-(136,36),10 'ROOF
50 LINE (120,168)-(152,100),10,B 'DOOR
55 LINE (152,60)-(168,36),10,BF 'CHIMNEY
60 LINE (165,128)-(191,100),10,B 'WINDOW
65 LINE (178,128)-(178,100),10 'WINDOW PART
70 LINE (165,114)-(191,114),10 'WINDOW PART
75 LINE (85,128)-(111,100),10,B 'WINDOW
80 LINE (85,114)-(111,114),10 'WINDOW PART
85 LINE (98,100)-(98,128),10 'WINDOW PART
90 GOTO 90

Programme faites-le vous même

Peut-être qu'il fait froid, ainsi que sombre, autour de votre maison. Si c'est le cas, allumez un feu dans la cheminée et montrez la fumée sortant de la cheminée. (Utilisez CIRCLE pour générer une spirale qui simule la fumée.)

Autre

Exemple 1:

1 ' Cela dessinera 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 2:

10 'Cela dessinera 5 sphères
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

 

 

 

 

 

 

 

Recherche personnalisée