Previous: hidgv Up: ../plot79_h.html Next: hidgvs


HIDGV2

       SUBROUTINE  HIDGV2 (Z0, Z1,ZE,Z2, X,Y, MX,MY, NX,NY, LX,LY, S, T,
      X     PL2)
 C$    (General View - Arbitrary X,Y)
 C$    Make  a  hidden-line  drawing  of  a  surface  defined   in
 C$    Cartesian coordinates  on a variable grid,  permitting  the
 C$    specification  of  general   4-D  transformations  on   the
 C$    surface.
 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$    X,Y.....Arrays of (X,Y) coordinates.  These should be in
 C$            strictly ascending or descending order.
 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$    (01-FEB-82)