APPLICATIONSDIVERS ★ HISTOGRAMMES 3D (CPC REVUE) ★

Histogrammes 3D (CPC Revue)Applications Divers
Un histogramme est une représentation graphique de données numériques, sous forme de "buildings" plus ou moins hauts et à plusieurs "tranches". Il sont très fréquents dans les revues d'économie. On les appelle aussi "diagrammes à barres verticales". Par exemple, pour représenter la production en voitures, camions et motos pour cinq pays, chaque barre représente un pays, et divisée en trois couches dont la hauteur est proportionnelle au nombre d'unités fabriquées.

Il y a d'abord eu l'histogramme plat, où chaque barre est en fait un rectangle de hauteur variable ; puis l'histogramme en trois dimensions où chaque barre est dessinée en perspective, afin de donner une impression de volume, de "relief". L'effet visuel est infiniment plus sympathique, plus "tape-à-l'œil", au point que l'on n'oserait plus publier un histogramme plat, tant ce dernier fait triste et désuet face à son homologue en 3D. Et pourtant, cette épaisseur uniforme n'ajoute strictement rien de représentatif. A noter qu'il existe des histogrammes 3D où cette épaisseur est variable puisque proportionnelle à un troisième paramètre : pour en avoir déjà subi, je puis vous dire que c'est absolument "imbuvable" !

LOGICIEL OU DEMO ?

L'auteur vous a déjà proposé deux logiciels de représentation graphique de données : en "Camembert" (CPC n° 2, page 19) ; en graphiques ("TRAGRAPH", CPC n° 6, page 46). La première idée était donc de faire de même avec les histogrammes ; or le nombre de questions-paramètres s'est montré rebutant pour un futur utilisateur. Pas valable. En effet, dans la pratique, cet utilitaire aura toujours le même histogramme à représenter, aux hauteurs près bien sûr. Mieux vaut (avis personnel) présenter un programme de démonstration, mais expliqué dans chaque détail, afin que vous puissiez rapidement programmer le vôtre, aux mesures de votre problème précis. Cela deviendra un sous-programme de votre programme (comptabilité, statistiques, etc.).

Puisque le listing est court, essayez-le vite. Les paresseux pourront se dispenser des REM et des lignes 400 à 460, mais avec les lignes 500 à 530.

LE RESULTAT FINAL

Disons tout de suite que les volumes numériques présentées en exemple sont complètement "bidon" et n'ont aucun rapport avec la réalité, tant s'en faut... Le thème est micro-ordinateurs professionnels dans cinq pays d'Europe. Donc, cinq barres (on dit aussi "colonnes". Dans chacune, trois rubriques : de bas en haut IBM-PC (en jaune), APPLE (en bleu ciel) et divers (en rouge).

Chaque barre est surmontée par sa légende. En bas de l'écran, les légendes de rubriques en trois couleurs.

Pour une barre dessinée, nous parlerons plus loin de sa "façade", son "flanc" et son "dessus". Pour donner du relief, ces trois faces sont délimitées par le tracé des arêtes en bleu foncé. Le tracé total se fait en 10,8 secondes. En tapant une touche, vous provoquez un CLS.

Petit gadget facultatif (lignes 400 à 460), chaque bloc-rubrique est légendé par la valeur numérique lui ayant donné naissance.

LE PROGRAMME DETAILLE

Les valeurs numériques ainsi que les légendes ont été mises en DATA (lignes 50 à 90). On appelle N le numéro de la colonne (1 à 5) et R le numéro de rubrique (1 à 3).

La progression horizontale X

Sur l'axe des X, on dispose de 640 points ; voici comment on les répartit : espace entre colonnes (ou BORDER) = 30. Soit un total pour les espaces de 30 x (5+1 ) = 180 points. Il reste donc pour les barres 640-180 = 460, soit 460/5 = 92 points par barre. Ceux-ci sont répartis en 70 points pour la façade plus 22 pour le flanc droit.

Le "pas" inter-colonnes est donc de 92 + 30 = 122 points. OK ? Donc, vous sauriez refaire ces calculs simples pour un autre nombre de colonnes (3, 4, 6, etc.).

Expliquons la ligne 220 : on va commencer la première barre en X = 30, puis nous aurons quatre sauts à faire pour terminer par le numéro cinq. D'où une progression en X jusqu'à 30 + (4 x 122) = 518 au pas de 122.

La progression verticale Y

On dispose de 400 points. Comptons une hauteur maximale par barre de 300 points. Restent 100 à répartir entre marges basse et haute.

Les traits obliques qui vont dessiner le flanc font 22 en X. Pour qu'ils soient bien rectilignes et non en marches d'escaliers, il faut qu'ils montent à 45° ; donc également 22 en Y.

On va tracer un trait horizontal de 70 suivi d'un trait oblique de 22 sur 22 dont le numéro de PEN sera celui de la rubrique R. On va empiler ces traits vers le haut mais avec un STEP en Y de 2 et non de 1. Pourquoi ? Parce que les 400 points en Y de l'AMSTRAD correspondent en fait à 200 lignes d'écran ! Un STEP de 1 ferait tracer deux fois le même trait sur lui-même ( = temps environ double).

La variable ORY, c'est l'origine Y pour chaque départ de rubrique. Au départ, ligne 230, on l'initialise à 50, c'est notre marge basse.

Dès qu'une rubrique est terminée, ORY prend la dernière valeur cumulée de Y (ligne 260), afin d'attaquer la rubrique suivante.

Nous venons ainsi de tracer la façade et le flanc d'une barre. On mémorise alors les coordonnées du curseur graphique (ligne 280).

LE DESSUS DE LA BARRE

Il est dessiné par des traits horizontaux longueur 70 vers la gauche, en partant du point mémorisé et en descendant ce PLOT de départ en oblique. Tout est dans la ligne 290. En finale, le curseur est dans l'angle en haut à gauche de la façade. Profitons-en pour le déplacer afin d'écrire en TAG la légende de la colonne (ligne 300). Rappel : une chaîne en TAG doit être suivie d'un point-virgule, sinon la chaîne serait suivie de caractères bizarres...

En ligne 300, pourquoi un PLOTR de 33,40 ? Une lettre occupe un carré de 16x16 points graphiques en MODE 1, le curseur graphique est en haut à gauche du premier carré-lettre. La hauteur du "dessus" de colonne est de 22 ; laissons au moins 2 points entre lui et la lettre, laquelle démarre 16 points au-dessus. On a bien 22 + 2+16 = 40 points en Y. D'autre part, nos légendes pays font trois lettres, soit 16x3 = 48 points : pour centrer sur la face arrière de la barre, il faudra décaler de (70-481/2 = 11, plus 22 pour le bord oblique de gauche =33 de décalage en X.

Le tracé des arêtes

On remet le curseur là où il avait été mémorisé (ligne 310), on trace en descendant en diagonale, en horizontale, on revient sur la "cassure", et on trace la grande arête verticale. Elémentaire.

L'affichage des quantités (lignes 400 à 460)

Tout à fait optionnel, car si un bloc rubrique fait moins de 20 points de hauteur, ce serait le désastre avec des chiffres de 16 de haut !

D'autre part, l'écriture par TAG pose des problèmes car il faut la combiner ici avec la transparence (avec CHR$(22)). Le listing étant devenu beaucoup trop lourd pour ce gadget, nous avons simplifié par l'affichage par LCOATE ; d'où des positionnements "arrondis" au plus proche, qui de ce fait ne sont pas toujours bien centrés dans la rubrique.

Le final (lignes 500 à 530)

Sans le CALL &BB06 qui attend une touche, nous aurions un épouvantable "READY" en haut à gauche de l'écran ! Vous pourrez ici intercaler une commande de hard-copy d'écran sur imprimante.

QUELQUES VARIANTES

  • Nos valeurs numériques en DATA n'excèdent jamais un total de 300 par colonne, à cause de nos 300 points graphiques. Avec vos valeurs réelles, à vous de définir un coefficient multiplicateur qui les transformera en nombre de points graphiques.
  • Si vous voulez un titre en haut de l'écran, pensez à abaisser ce maximum de 300 à 260 environ.
  • Pour plus de trois rubriques, il serait dommage de passer en MODE 0 ; après PEN 3, poursuivez avec PEN 5, PEN 6, etc. ( = PEN 1, PEN 2, etc.) en évitant PEN 4 ( = PAPER). Afin de différencier ces couleurs bis, utilisez pour ces rubriques un STEP de 4, d'où un tracé en hachures tout à fait acceptable.

LA COPIE D'ECRAN SUR IMPRIMANTE

Avec un programme simple de Hard-copy, toute la colonne sera noire avec les trois arêtes en blanc. Pas beau ! Deux remèdes :

a) Faire appel à un logiciel du commerce qui traduit les différents PEN par des grisés différents. Exemple "TASCOPY".

b) Hachurer par du STEP 4 les rubriques n° 1 et 3. Pour cela, ajouter une ligne 245 :

245 ST = 4: IF R = 2 THEN ST = 2 puis modifier la ligne 250 en remplaçant STEP 2 par STEP ST. De même, ligne 290, remplacer STEP 2 par STEP 4.

CONCLUSION

Nous avons voulu démontrer deux choses : que l'on peut tracer des histogrammes de qualité professionnelle avec un listing court. Que les calculs de ces paramètres sont à la portée de tous.

CPC n°13

★ EDITEUR: CPC Revue
★ ANNÉE: 1986
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC REVUE 1986
★ AUTEUR: Michel ARCHAMBAULT
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Histogrammes  3D    FRENCHDATE: 2012-08-10
DL: 222
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » 3D Character Design
» Applications » CAD.3D
» Applications » 3D-Plot (Computer Team)
» Applications » Amstrad 3D
» Applications » 2D/3D Fractal Landscape (Amstrad Computer User)
» Applications » 3D Landscape Designer (Amstrad Action)
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 592 millisecondes et consultée 1698 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.