Il y a deux mois, je publiais ma première récréation en 3D, une évocation d'un VG5000µ. J'avais modélisé la machine un peu au jugé et au final, il y avait pas mal d'erreurs dans les dimensions. Un peu trop à mon goût. J'ai donc refait l'exercice, cette fois avec un VG5000µ et une règle à côté de moi.
Et voici le nouveau résultat, bien plus satisfaisant.
Après la description de l'utilisation de l'affichage haute-définition du VG5000µ, voici le fichier au format K7 et format WAV qui vous permettra de lancer le programme sur votre propre VG5000µ ou un émulateur.
Au passage, le programme contient la version avec la maison sans l'inversion vidéo qui avait lieu dans l'article précédent.
Avec ce mode d'affichage, on obtient une résolution de 80 pixels horizontalement par 75 pixels verticalement. Ce qui donne un total de 6000 pixels. Cependant, le manuel d'utilisation de la machine indique une définition d'image de 80 000 points. Plus de 13 fois plus. Existe-t-il une façon d'afficher des pixels plus petits et d'atteindre une haute (toute proportion gardée) définition ?
Petit rappel : je ne m'occupe pour le moment que des capacités du VG5000µ offertes par le BASIC, et se mettant à la place d'une utilisation à l'époque, avec juste le manuel de base.
Plus fin
Pour atteindre une définition plus fine depuis le BASIC, il faut …
Après les machines précédemment évoquées en synthèse, toutes basées sur des processeurs 8 bits, voici ma première recréation de l'époque 16 bits, un Atari STe. Dans ma chronologie de programmeur, le 512 STe (gonflé en mémoire) a remplacé l'Amstrad CPC 6128. Un plutôt gros changement.
Côté musique, l'Atari était relié à un synthétiseur et j'ai pu découvrir les joies de la programmation MIDI et écrire un petit séquenceur à usage personnel (et très limité).
Maintenant que nous avons un algorithme pour tracer un cercle ainsi que le moyen d'afficher un gros pixel à l'écran, nous voilà prêts pour traduire tout cela en BASIC, comme cela a été fait auparavant avec le segment de droite.
Pour rappel, voici l'implémentation en BASIC d'affichage d'un point à l'écran.
100REM AFFICHE UN POINT DANS L'ESPACE SEMI-GRAPHIQUE110REM X CONTIENT L'ABSCISSE ENTRE 0 et 79120REM Y CONTIENT L'ABSCISSE ENTRE 0 et 74130ZX=INT(X/2):ZY=INT(Y/3)140RX=X-ZX*2:RY=Y-ZY*3150CH=2^(RY*2+RX)160DI=&"4000"+ZY*80+ZX*2170AT=PEEK(DI+1)200OL=64:IF(ATAND128)=128THENOL=PEEK(DI)220IF(OLAND128)=128THENOL=64230POKEDI,OLORCH240POKEDI+1,224250RETURN …