Previous: pgnr2 Up: ../plot79_p.html Next: pl2ca


PGNR3

       SUBROUTINE  PGNR3 (DXARAY,INCX, DYARAY,INCY, DZARAY,INCZ, NVERTX)
 C$    (Polygon Relative 3-D)
 C$    Draw a 3-D polygon.  A relative move is automatically  made
 C$    from the current point to the first vertex, relative  draws
 C$    are made between all remaining vertices, and then  implicit
 C$    closure is provided  by connecting the  last vertex to  the
 C$    first.  On return, the current point is at the first vertex.
 C$
 C$    If a polygon "plain" interior  style filling and a  visible
 C$    pattern or  color has  been  selected by  a prior  call  to
 C$    SETPIS and SETPFI/SETPCI, the  polygon is filled with  that
 C$    pattern or color.  The polygon  vertices are assumed to  be
 C$    arranged so that the interior lies to the left of each line
 C$    segment between vertices i and i+1.  The arguments are:
 C$
 C$    DXARAY(*)........Array of relative X coordinates
 C$    INCX.............Displacement between successive X
 C$                     coordinates in DXARAY(*) (normally 1).
 C$    DYARAY(*)........Array of relative Y coordinates.
 C$    INCY.............Displacement between successive Y
 C$                     coordinates in DYARAY(*) (normally 1).
 C$    DZARAY(*)........Array of relative Z coordinates.
 C$    INCZ.............Displacement between successive Z
 C$                     coordinates in DZARAY(*) (normally 1).
 C$    NVERTX...........Number of polygon vertices (.GE. 3).
 C$
 C$    If an  increment  INCX,  INCY, or  INCZ  is  negative,  the
 C$    starting vertex is taken as (1-N)*INC + 1 instead of 1,  so
 C$    that  the  array  is  stepped  through  in  reverse  order.
 C$    Because  of  the  ordering  convention  on  the   vertices,
 C$    reversing  the  order  of  traversal  of  the  vertex  list
 C$    interchanges the interior and the exterior of the  polygon.
 C$    No error is raised if there are fewer than 3 vertices,  but
 C$    filling will be suppressed.
 C$
 C$    In the  current  implementation  of  this  routine,  it  is
 C$    necessary to expand the relative coordinates internally  to
 C$    a list of  absolute coordinates  which are  then passed  to
 C$    PGNA3.  This expansion is done in working arrays in  COMMON
 C$    whose size limits the number of vertices.  If more vertices
 C$    are provided,  a warning  message will  be issued  and  the
 C$    additional vertices will simply  be ignored.  The limit  is
 C$    at present 255 vertices.
 C$    (21-APR-83)