Suiv.: 4.6 Textes
Sup.: Création d'une image 3D
Préc.: 4.4 Les transformations
Index
Table des matières
Les composantes élémentaires sont supposées être créées à l'aide d'un curseur fictif indépendant du curseur défini en 2D.
SUBROUTINE MOV3TO(X, Y, Z) REAL X, Y, Z
Déplace le curseur au point de coordonnées (X, Y, Z).
SUBROUTINE MOV3OF(U, V, W) REAL U, V, W
Déplace le curseur d'un vecteur (U, V, W).
SUBROUTINE LIN3TO(X, Y, Z) REAL X, Y, Z
Crée un segment de droite depuis la position courante du curseur jusqu'au point de coordonnées (X, Y, Z). Ce dernier point devient la position courante du curseur.
SUBROUTINE LIN3OF(U, V, W) REAL U, V, W
Crée un segment de droite de vecteur (U, V, W) depuis la position courante du curseur. L'extremité du segment devient la position courante du curseur.
SUBROUTINE POLY3F(X, Y, Z, NB, CFAC, CCONT, IFALG) INTEGER NB, CFAC, CCONT, IFALG REAL X(NB), Y(NB), Z(NB)
Crée une facette de NB sommets (NB < 50).
X(NB), Y(NB), Z(NB): Coordonnées des sommets de la facette.
NB : Nombre de sommets de la facette
CFAC : Couleur de la facette
CCONT : Couleur du contour
IFLAG : Option de tracé
En fait ce sous-programme effectue le remplissage de la facette sur la surface delimitée par la projection du contour de la facette sur le masque 2D défini par l'appel de PRSPCT. Si la facette est courbée dans l'espace et si une partie de sa surface est cachée par une autre partie située plus près de l'observateur, elle risquera donc de ne pas être complètement remplie. Même remarque pour le clipping des facettes non convexe que POLY2F.
D'une manière générale, aussi bien en 2D qu'en 3D, on peut définir les facettes de la manière suivante:
SUBROUTINE DEBFAC(ITYP) INTEGER ITYP
Indique le début de la description d'une facette. Cette description se fera par la définition des segments de droite entrant dans la composition du contour polygonal de la facette.
Si ITYP = 0 : Définition du contour extérieur
Si ITYP = 1 : Définition d'un trou
SUBROUTINE FINFAC
Indique la fin de la séquence de la description d'une facette.
SUBROUTINE CURVE3(TX, TY, TZ, NB) REAL TX(NB), TY(NB), TZ(NB) INTEGER NB
Trace la ligne brisée de NB sommets dont les coordonnées sont fournies par les tableaux TX, TY et TZ. A la fin du tracé la position courante du curseur devient celle du dernier sommet.
SUBROUTINE CURVE(TX, TY, NB) REAL TX(NB), TY(NB) INTEGER NB
Trace dans le plan XOY la ligne brisée de NB sommets dont les coordonnées successives sont fournies par les tableaux TX et TY. A la fin du tracé la position courante du curseur est celle du dernier sommet, i.e. (TX(NB), TY(NB), 0.).
SUBROUTINE POLGON(R, A, NB) REAL R, A INTEGER NB
Trace dans le plan XOY à partir de l'axe OX la polyligne régulière de NB arêtes qui approche l'arc de cercle centré à l'origine et faisant un angle A (radians) compté positivement dans le sens trigonométrique. A la fin du tracé la position courante du curseur est l'extrémité de l'arc.
SUBROUTINE CIRCLE(R, NB) REAL R INTEGER NB
Trace dans le plan XOY le polygone régulier de NB cotés approchant le cercle de rayon R centré à l'origine. A la fin du tracé la position courante du curseur est (R, 0., 0.).
SUBROUTINE CRCLCP(XC, YC, X, Y, NB) REAL XC, YC, X, Y INTEGER NB
Trace dans le plan XOY le polygone régulier de NB cotés approchant le cercle de centre (XC, YC) et passant par le point (X, Y). A la fin du tracé la position courante du curseur est (X, Y, 0.).
SUBROUTINE ARC(A, TC, TP, NB) REAL A, TC(2), TP(2) INTEGER NB
Trace dans le plan XOY le polygone régulier de NB cotés approchant l'arc de cercle centré en (TC(1), TC(2), 0.), d'origine le point (TP(1), TP(2), 0.) et d'angle A radians compté positivement dans le sens trigonométrique. A la fin du tracé la position courante du curseur est l'extrémité de l'arc.
SUBROUTINE ARC2P(TC, TP, NB) REAL TC(2), TP(4) INTEGER NB
Trace dans le plan XOY le polygone régulier de NB cotés approchant l'arc de cercle centré en (TC(1), TC(2), 0.), d'origine le point (TP(1), TP(2), 0.), d'extrémité le point (TP(3), TP(4), 0.) et tracé dans le sens trigonométrique (en fait cette extrémité se trouve sur la droite passant par ce point et l'origine). A la fin du tracé la position courante du curseur est l'extrémité de l'arc.
SUBROUTINE PRISMM(H, TP, NB) REAL H, TP(2, NB) INTEGER NB
Trace les arêtes d'un prisme droit de hauteur H, dont la base située dans le plan XOY est définie par le contour polygonal fermé dont les coordonnées successives des NB sommets sont indiquées par le tableau TP. A la fin du tracé la position courante du curseur est le point (TP(1, NB), TP(2, NB), H).
SUBROUTINE REVOL(C, NBCB, NC) REAL C(2, NBCB) INTEGER NBCB NC
Trace les arêtes d'un volume de révolution obtenu à partir d'une courbe définie dans le plan XOY tournant autour de l'axe OY. Les NBCB sommets de la courbe sont contenus dans le tableau C et les cercles comportent NC arêtes. A la fin du tracé la position courante du curseur est le point (C(1, NBCB), C(2, NBCB), 0.).
SUBROUTINE CARRE
Trace dans le premier cadran du plan XOY, un carré de coté 1., dont le sommet bas gauche est situé à l'origine. A la fin du tracé la position du curseur est l'origine.
SUBROUTINE CUBE
Trace les arêtes d'un cube de coté 1., s'appuyant sur les trois axes, situé dans le trièdre positif et dont l'un des sommets est l'origine. A la fin du tracé la position courante du curseur est le point (0., 1., 1.).
SUBROUTINE TRIEDR
Trace un trièdre représentant les axes de coordonnées, dont les arêtes sont de longueur unité et comportant les lettres X, Y et Z respectivement à l'extrémité de chacun des axes. A la fin du tracé la position courante du curseur est indéterminée.
SUBROUTINE WPRISM(S, NB, D, H, BOUTS, DERFAC) INTEGER BOUTS REAL S(2, NB), D(3), H LOGICAL DERFAC
Identique au sous-programme PRISMM mais avec remplissage des facettes :
S : section du prisme dans le plan XOY
NB: nombre de sommets dans cette section
D : vecteur, direction des génératrices
H : hauteur en Z du prisme. Vecteur de translation entre les sections Z = 0 et Z = H
BOUTS: Option pour fermer les faces:
Si .FALSE. ne pas fermer la dernière facette (polygone ouvert).
SUBROUTINE WCUBE(C) REAL C
Trace un cube d'arête C (voir CUBE).
SUBROUTINE WREVOL(C, NBCB, N, FONDS, ICOUL) REAL C(2, NBCB) LOGICAL FONDS
Identique au sous-programme REVOL mais avec remplissage des facettes:
NBCN: Nombre de points sur la courbe
N: Nombre de points sur les cercles
FONDS=.TRUE. si on doit tracer les fonds (bases de l'objet).