Previous: hidcv Up: ../plot79_h.html Next: hiddos
SUBROUTINE HIDDO (Z0, Z1,S1,S2,Z2, MX,MY, NX,NY, LX,LY, S,
X T, SEP, BR, PL2)
C$ (Double Surface)
C$ Make a hidden-line drawing of two possibly intersecting
C$ surfaces, hiding those parts of each surface which are
C$ covered by the other.
C$
C$ Z0......Cutoff value. Only function values, S*(I,J), above
C$ (S .GT. 0.0) or below (S .LT. 0) Z0 are visible.
C$ S1,S2...Arrays containing the two surfaces. S*(I,J) =
C$ F(X(I),Y(J)), where X(I) = (I-1)*DX and Y(J) =
C$ (J-1)*DY both map onto the interval 0..1.
C$ Z1,Z2...Span of surface values.
C$ MX,MY...Actual declared dimensions of the arrays S1(*,*)
C$ and S2(*,*).
C$ NX,NY...Sections of S1(*,*) and S2(*,*) 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 surfaces. 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$ SEP.....Separation option (.TRUE. = yes, .FALSE. = no).
C$ When separation is requested, the upper horizon is
C$ elevated from the lower horizon, and the vertical
C$ and horizontal coordinates are rescaled to maintain
C$ correct proportions. The scale factor is
C$ 1-ABS(T(2,2)), and best results are obtained when
C$ T(2,2) lies in the approximate range -0.4..+0.4.
C$ BR......Bounding routine, normally VISTW or VISSB.
C$ PL2.....2-D pen movement subroutine, normally PL2CA.
C$
C$ (04-FEB-82)