CODINGLISTINGS ★ CRÉONS DES VOLUMES ★

Créons des volumesCoding Listings
Voici un programme de visualisation en trois dimensions. Très simple, il ne permettra de représenter que des volumes “tournés” ; c'est-à-dire des volumes de révolution issus d'un profil tracé sur l'écran. Mais nous pourrons voir la forme ainsi déterminée sous n'importe quel angle en la faisant pivoter dans un plan normal par rapport à celui de l'écran.

Ecriture du programme. En premier lieu, nous demanderons à l'Amstrad de travailler en mode 2, afin d'obtenir la meilleure résolution graphique disponible sur l'appareil. Nous initialiserons ensuite, en lignes 70 et 80, les trois variables principales du programme.

P est un facteur correctif destiné à compenser la distorsion du tracé d'un cercle sur l'écran à partir des fonctions sinus et cosinus, XC et YC seront respectivement liées aux positions horizontales et verticales du curseur lors de la détermination du profil.

L'ensemble des rayons ainsi déterminés devra être mémorisé. Pour cela nous créerons un tableau, R(24), à la ligne 140 ainsi que deux tableaux auxiliaires, H(36) et V(36), que nous utiliserons pour le tracé des génératrices du volume.

Ces diverses initialisations et préparations de tableaux effectuées, les données de la forme à représenter pourront être introduites. Pour cela l'écran présentera la liste des touches utilisables pour cette opération, ainsi qu'une ligne de symétrie figurant ici la ligne de l'axe de rotation du profil défini. Ces diverses indications seront affichées par les lignes 220 à 270 pour la ligne d'axe, et par les lignes 280 à 350 pour les commentaires.

Les lignes 410 à 550 du programme seront réservées à la gestion du curseur de détermination du profil. Nous trouverons donc fréquem-ment l'instruction INKEY qui permettra, d'une part de déplacer le curseur, d'autre part de valider les points du tracé ainsi que le profil lui-même. Vient ensuite la demande de l'angle de rotation pour la visualisation souhaitée du volume créé. Cette fonction sera assurée par les lignes 620 à 660 . Notons que la variable P sera modifiée en fonction de l'angle choisi ainsi que la variable AXE contrôlant les coordonnées de la projection de chaque tranche du volume sur son axe vertical. Cette indication fourment l'instruction INKEY qui permettra, d'une part de déplacer le curseur, d'autre part de valider les points du tracé ainsi que le profil lui-même. Vient ensuite la demande de l'angle de rotation pour la visualisation souhaitée du volume créé. Cette fonction sera assurée par les lignes 620 à 660 . Notons que la variable P sera modifiée en fonction de l'angle choisi ainsi que la variable AXE contrôlant les coordonnées de la projection de chaque tranche du volume sur son axe vertical. Cette indication fournie au programme, la vue du volume, sous l'angle désiré, pourra débuter ; elle sera assurée par les lignes 720 à 840. Elles auront pour fonction d'afficher le numéro de tranche en cours de visualisation ainsi que le nombre de tranches restant à visualiser de même que l'angle de rotation choisi. La boucle FOR... NEXT des lignes 760 à 820 assurera la représentation des 24 tranches du volume. Pour cela nous faisons régulièrement appel au tableau R(24), ainsi qu'à la sous-routine 900 chargée du tracé. En fin de calcul, la ligne 830 affichera “VISUALISATION TERMINÉE” ; puis le programme sera bouclé de manière à pouvoir demander la visualisation du même volume sous un autre angle.

La sous-routine des lignes 900 à 1020 aura donc pour mission d'assurer l'ensemble du tracé. Il sera effectué par pas de 10 degrés grâce à la boucle FOR... NEXT des lignes 900 à 1000. Ici les fonctions sinus et cosinus seront de nouveau régulièrement utilisées de manière à calculer le tracé de chaque ligne figurant un cercle vue de biais. Notons également que c'est ici que nous ferons appel aux tableaux H(36) et V(36) pour contrôler le tracé des génératrices du volume.

La frappe ne doit pas poser de problème et l'utilisation de ce programme reste des plus simples. Après l'avoir entièrement tapé, puis demandé RUN, l'écran affichera la ligne d'axe ainsi que les divers commentaires relatifs aux déplacements du curseur. Les flèches “à droite” et “à gauche” seront donc utilisées pour le positionner et ENTER sera indispensable pour valider chaque point.

Notons que le fait d'appuyer sur ENTER provoque le changement de ligne du curseur. Cependant il sera toujours possible de modifier la position d'un point en utilisant les flèches vers le haut ou vers le bas.

Enfin, une fois le profil entièrement déterminé, les touches SHIFT et ENTER seront pressées simultanément. Dès lors, le programme demandera l'angle de visualisation souhaité. Celui-ci sera indiqué en degrés et validé, encore une fois, par ENTER. La visualisation du volume commencera alors. Notons qu'il sera représenté en perspective cavalière et comme s'il était constitué d'une matière transparente.

Certes, ce programme n'est qu'un embryon de représentation en trois dimensions, notamment parce qu'il ne permet de représenter que des formes de révolution et n'effectue leur rotation que dans un seul plan. Néanmoins, il pourra faire office de base à bien d'autres applications dont, nous n'en doutons pas, bon nombre d'entre vous souhaiteront entreprendre la mise au point.

Henri-Pierre PENEL , Science&Vie n°844

★ EDITEUR: Science&Vie
★ ANNÉE: 1988
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Henri-Pierre PENEL

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Creons  des  volumes    (Science  et  Vie)    FRENCHDATE: 2020-04-22
DL: 201
TYPE: ZIP
SiZE: 5Ko
NOTE: Uploaded by CPCLOV ; 40 Cyls
.HFE: Χ

» Creons  des  Volumes    (Science  et  Vie)    LISTING    FRENCHDATE: 2016-03-10
DL: 264
TYPE: PDF
SiZE: 616Ko
NOTE: 2 pages/PDFlib v1.6

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

Lien(s):
» Coding Src's » Figuras en 3-D (Amstrad Especial)
» Coding Src's » Boggle (Amstrad Action)
» Coding Src's » Pelota Rebotante
» Coding Src's » Excat
» Coding Src's » Donut multicolor (Amstrad Personal)
» Coding Src's » Eye: Colour Swaping Demonstration
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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 425 millisecondes et consultée 1288 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.