Previous: hidsws Up: ../plot79_h.html Next: hidtrs


HIDTR

       SUBROUTINE  HIDTR (Z0, Z1,S1,S2,S3,Z2, MX,MY, NX,NY, LX,LY,
      X                   S, T, SEP, PL2)
 C$    (Triple Surface)
 C$    Make a hidden-line drawing  of three possibly  intersecting
 C$    surfaces, hiding  those parts  of  each surface  which  are
 C$    covered by the others.
 C$
 C$    Z0.............Cutoff value.  Only function values,
 C$                   S*(I,J), above (S .GT. 0.0) or below (S .LT.
 C$                   0.0) Z0 are visible.
 C$    S1,S2,S3.......Arrays containing the three surfaces.
 C$                   S*(I,J)  =   F(X(I),Y(J)),  where   X(I)   =
 C$                   (I-1)*DX and Y(J) =  (J-1)*DY both map  onto
 C$                   the interval 0..1.
 C$    Z1,Z2..........Span of surface values.
 C$    MX,MY..........Actual declared dimensions of the arrays
 C$                   S1(*,*), S2(*,*), and S3(*,*).
 C$    NX,NY..........Sections of S1(*,*), S2(*,*), and S3(*,*)
 C$                   actually used.
 C$    LX,LY..........Increments  in X  and Y directions (.GT. 0).
 C$                   Values of LX and LY larger than 1 produce  a
 C$                   coarser mesh on  the drawing without  losing
 C$                   the smoothness of the complete surface.   LX
 C$                   should be an integral  divisor of NX-1,  and
 C$                   LY of NY-1.   If this is  not the case,  the
 C$                   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
 C$                   parts.  If S = 0.0, the cutoff value Z0  has
 C$                   no effect.
 C$    T(4,4).........4-D     transformation     matrix   defining
 C$                   orientation of  the  surfaces.   The  window
 C$                   coordinates  of  a  point  (X,Y,Z,1.0)   are
 C$                   (U,V,W,H) = (X,Y,Z,1.0) T.  X, Y, and Z  are
 C$                   computed  in  the  range  0..1,  and  Z   is
 C$                   obtained from the function values by scaling
 C$                   the  range  Z1..Z2   onto  0..1.   A   point
 C$                   (U,V,W,H) is visible  if U/H,  V/H, and  W/H
 C$                   lie in the range 0..1.
 C$    SEP............Separation option (.TRUE. = yes,   .FALSE. =
 C$                   no).   When  separation  is  requested,  the
 C$                   upper horizon  is  elevated from  the  lower
 C$                   horizon, and  the  vertical  and  horizontal
 C$                   coordinates are rescaled to maintain correct
 C$                   proportions.    The    scale    factor    is
 C$                   1-ABS(T(2,2)), and best results are obtained
 C$                   when T(2,2)  lies in  the approximate  range
 C$                   -0.4..+0.4.
 C$    PL2............2-D pen movement subroutine, usually PL2CA
 C$
 C$    (04-FEB-82)