Previous: hidgv2 Up: ../plot79_h.html Next: hidhv
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)