Previous: hidgv2 Up: ../plot79_h.html Next: hidhv


HIDGVS

       SUBROUTINE  HIDGVS (Z0, Z1,ZE,Z2, MX,MY, NX,NY, LX,LY, S, T, PL2)
 C$    (General View - Stereo)
 C$    Produce  a  stereo  perspective  projection  drawing  of  a
 C$    single-valued function  defined in  Cartesian  coordinates.
 C$    The arguments are:
 C$
 C$    Z0......Cutoff value.  Only function values, ZE(I,J), above
 C$            (S .GT. 0.0) or below (S .LT. 0) Z0 are visible.
 C$    ZE......Array containing the surface.  ZE(I,J) =
 C$            F(X(I),Y(J)).
 C$    Z1,Z2...Span of surface values.
 C$    MX,MY...Actual declared dimensions of the array ZE(*,*).
 C$    NX,NY...Sections of ZE(*,*) actually used.
 C$    LX,LY...Increments in X and Y directions (.GT. 0).  Values
 C$            of LX and LY larger  than 1 produce a coarser  mesh
 C$            on the drawing without losing the smoothness of the
 C$            complete surface.  LX should be an integral divisor
 C$            of NX-1, and LY of NY-1.  If this is not the  case,
 C$            the  next  smallest  value  which  satisfies   this
 C$            requirement is used internally.
 C$    S.......=+1.0, graph positive part of function,
 C$            =-1.0, graph negative part of function,
 C$            = 0.0, graph both positive and negative parts.
 C$            If S = 0.0, the cutoff value Z0 has no effect.
 C$    T(4,4)..4-D  transformation matrix  defining orientation of
 C$            the surface.   The window  coordinates of  a  point
 C$            (X,Y,Z,1.0) are (U,V,W,H) =  (X,Y,Z,1.0) T.  X,  Y,
 C$            and Z  are computed  in the  range 0..1,  and Z  is
 C$            obtained from the  function values  by scaling  the
 C$            range Z1..Z2  onto  0..1.   A  point  (U,V,W,H)  is
 C$            visible if U/H, V/H, and W/H lie in the range 0..1.
 C$    PL2.....2-D pen movement subroutine, usually PL2CA.
 C$
 C$    The transformation defined by the matrix T(4,4) produces  a
 C$    mapping of the  function into  the 3-D  view volume.   This
 C$    view is then  further modified  by perspective  projections
 C$    with centers  at the  left and  right eyes  to produce  two
 C$    side-by-side views in adjacent square viewports.  For  this
 C$    reason, the  framing  routine  called  after  PLT00  should
 C$    normally be PLTFR, in order that no inner border be  drawn.
 C$
 C$    (07-JUN-85)