Rectangle d'or
GW-Basic, utilisé par PC-Basic
Programme avec Graphique et Texte
PC-BASIC
Dans le programme GOLDEN.BAS (Nombre d'or), nous avons utilisé des méthodes d'approximation numérique pour arriver à une valeur du nombre d'or de n chiffres de longueur après la décimale; rappelons que cette valeur était d'environ 1,618.
Rappelons également que dans le film Disney Donald in Mathmagic lurnd, le narrateur informe Donald que des proportions du nombre d'or se retrouvent dans des structures architecturales datant de l'antiquité; de tels arrangements rectangulaires avec ces "proportions dorées" peuvent être correctement appelés rectangles dorés.
Utilisons GW-BASIC pour produire, graphiquement plutôt que numériquement, des rectangles dorés de surface toujours croissante sur l'écran.
Les coordonnées initiales d'un coin du rectangle sont fixées à la ligne 5, tandis que la valeur du nombre d'or est stockée dans la variable G à la ligne 30.
Ensuite, en utilisant les boucles FOR/NEXT, le curseur se déplace vers la droite, le bas, la gauche et vers le haut, dans cet ordre, laissant une traînée colorée derrière, à l'infini, jusqu'à ce que vous appuyiez sur la touche Échap.
Ne changeant aucune fonctionnalité du programme, le code pourrait être considérablement raccourci en diminuant le nombre de boucles (et en rendant les mouvements eux-mêmes conditionnels) ou en écrivant une sous-routine de dessin qui est appelée à chaque mouvement du curseur.
De plus, cela pourrait être plus impressionnant visuellement si les côtés des rectangles apparaissaient comme des lignes pleines plutôt que comme des lignes discontinues.
5 X=620:Y=300
10 KEY OFF
20 SCREEN 9:COLOR
15,0:CLS
30 G=(1+SQR(5))/2
40 FACTOR=1
45 RANDOMIZE TIMER
47
I=INT(1+15*RND(1))
50 FOR R=1 TO G*FACTOR STEP .1
55 X=X+R
60 PSET(X,Y),I
70 NEXT R
80 FOR D=1 TO 1*FACTOR STEP .1
90 Y=Y+D
100 PSET(X,Y),I
110 NEXT D
115 FACTOR=FACTOR+.1
120 FOR L=G*FACTOR TO 1 STEP -.1
130 X=X-L
140 PSET(X,Y),I
150 NEXT L
160 FOR U=1*FACTOR TO 1 STEP -.1
170 Y=Y-U
180 PSET(X,Y),I
190 NEXT U
195 IF INKEY$=CHR$(27) THEN END
200 GOTO 47