Previous: hzncv Up: ../plot79_h.html Next: hznil
SUBROUTINE HZNGV (Z0, Z1,ZE,Z2, MX,MY, NX,NY, LX,LY, S, T, PL2) C$ (General View) C$ Make a hidden-line drawing of a surface defined in C$ Cartesian coordinates on a uniform 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), C$ above (S .GT. 0.0) or below (S .LT. 0) Z0 are C$ visible. C$ ZE(*,*).....Array containing the surface. ZE(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 array ZE(*,*). C$ NX,NY.......Sections of ZE(*,*) 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 the C$ smoothness of the complete surface. LX should C$ be an integral divisor of NX-1, and LY of NY-1. C$ If this is not the case, the next smallest C$ value which satisfies this requirement is used C$ internally. At present, LX and LY will be C$ adjusted internally to be of equal size. 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 C$ of the surface. The window coordinates of a C$ point (X,Y,Z,1.0) are (U,V,W,H) = (X,Y,Z,1.0) C$ T. X, Y, and Z are computed in the range 0..1, C$ and Z is obtained from the function values by C$ scaling the range Z1..Z2 onto 0..1. A point C$ (U,V,W,H) is visible if U/H, V/H, and W/H lie C$ in the range 0..1. C$ PL2.........2-D pen movement subroutine, usually PL2CA C$ C$ (01-FEB-82)