Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: Création d'une image 3D Sup.: Création d'une image 2D Préc.: Notions de masques et de Index Table des matières


3.2 Instructions graphiques 2D

Les objets décrits à l'aide des sous-programmes suivants ne seront affectés que par la définition de MASQU2 et de FENTR2. La position courante en 2D est indépendante de celle en 3D.

Comme on l'a vu dans la présentation, les objets sont décrits dans un système de coordonnées propre à l'utilisateur (on sait maintenant qu'il s'agit uniquement de choisir le bon MASQUE).

Les coordonnées sont exprimées en nombres réels simple précision, l'origine étant située en (0., 0.). Elles sont repérées par rapport à un système d'axes orthonormés directs.

Les sous-programmes permettant de spécifier le type des tracés sont décrits dans le chapitre graphisme.

Les subroutines suivantes forment le catalogues des objets 2D:

      SUBROUTINE MOV2TO(X, Y)
      REAL X, Y

Déplace le  curseur au point de coordonnées (X, Y).

      SUBROUTINE MOV2OF(U, V)
      REAL U, V

Déplace le  curseur d'un vecteur (U, V).

      SUBROUTINE LIN2TO(X, Y)
      REAL X, Y

Crée un  segment à partir de la  position courante du curseur jusqu'au point de coordonnées (X, Y). Ce dernier point devient la position courante du curseur.

      SUBROUTINE LIN2OF(U, V)
      REAL U, V

Crée un segment défini par le vecteur (U, V) à partir de la position courante du curseur. L'extremité du segment devient alors la position courante du curseur.

      SUBROUTINE CURVE2(TX, TY, NB)
      REAL TX(NB), TY(NB)
      INTEGER NB

Trace la  ligne brisée dont les  coordonnées des NB sommets successifs sont stockées dans les tableaux TX, TY. A la fin du tracé, la position courante du curseur est (TX(NB), TY(NB)).

      SUBROUTINE CIRCL2(XC, YC, R, NBA)
      REAL XC, YC, R
      INTEGER NBA

Trace le  polygone régulier de NBA arêtes qui approche le cercle  de centre (XC, YC) et de rayon R. A la fin du tracé, la position courante du curseur est (XC+R, YC).

      SUBROUTINE CRCLC2(XCENTR, YCENTR, X, Y, NBSEGM)
      INTEGER NBSEGM
      REAL XCENTR, YCENTR, X, Y

Trace la  ligne de NBSEGM cotés approchant le cercle de centre (XCENTR, YCENTR) et passant par (X, Y).

      SUBROUTINE ARC2(ANGLE, CENTRE, POINT, NBA)
      REAL ANGLE, CENTRE(2), POINT(2)
      INTEGER NBA

Trace la  polyligne formée de NBA arêtes qui approche l'arc de cercle de centre (CENTRE(1), CENTRE(2)), d'origine le point (POINT(1), POINT(2)) et faisant un angle ANGLE radians compté positivement dans le sens trigonométrique. A la fin du tracé la position courante du curseur est le dernier point tracé.

      SUBROUTINE RECTA2(P1, P2)
      REAL P1(2), P2(2)

Trace le  rectangle de cotés parallèles aux axes de diagonale:

(P1(1), P1(2)) -- (P2(1), P2(2))

A la fin du tracé, la position courante du curseur est le point (P1(1), P1(2)).

      SUBROUTINE DRECT2(X,Y,DX,DY)
      REAL X,Y,DX,DY

Trace un  rectangle dont les 4 sommets sont (X, Y), (X+DX, Y), (X, Y+DY) et (X+DX, Y+DY) (coordonnées utilisateur).

      SUBROUTINE POLY2(X, Y, NB)
      REAL X(NB), Y(NB)
      INTEGER NB

Trace un  polygone de NB sommets dont les coordonnées sont données dans les tableaux X et Y. A la fin du tracé la position courante du curseur est le point (X(1), Y(1)).

Remplissage des surfaces

      SUBROUTINE POLY2F(X, Y, NB, CFAC, CCONT, IFLAG)
      INTEGER NB, CFAC, CCONT, IFLAG
      REAL X(NB), Y(NB)

X(1:NB), Y(1:NB) : Coordonnées des  sommets du  polygone

NB : Nombre de sommets du polygone (NB < 50)

CFAC : Numéro de la couleur de la facette

CCONT : Numéro de la couleur du contour

IFLAG : Option de tracé, avec:

.
0: Tracé de la facette seule,
.
1: Tracé du contour seul,
.
2: Tracé de la facette et du contour.

Si la facette est convexe, le clipping associé au masque courant sera correct. Si la facette est non convexe et si la partie non convexe est coupée par le masque courant, il y aura un léger défaut à cet endroit (une ligne rejoignant les deux bouts). Les sous-programmes permettant de spécifier des couleurs sont détaillés dans le chapitre graphisme.

Textes

Le sous-programme décrit ci-dessous produit des textes  formés de caractères 'HARDWARE'. Il existe un autre sous-programme permettant d'avoir des caractères 'SOFTWARE' qui sera décrit dans la partie 3D.

      SUBROUTINE TXT2D(STRING, NB, X, Y)
      CHARACTER*(*) STRING
      INTEGER NB
      REAL X, Y

Trace à partir de  la position (X, Y) le texte de NB caractères contenu dans la chaîne de caractères STRING. La position courante du curseur devient le point (X, Y).

Les sous-programmes permettant de spécifier la taille, le sens, ..., du tracé du texte sont détaillés dans le chapitre graphisme.


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: Création d'une image 3D Sup.: Création d'une image 2D Préc.: Notions de masques et de Index Table des matières