Previous: hidtr Up: ../plot79_h.html Next: hidtv
SUBROUTINE HIDTRS (Z0, Z1,S1,S2,S3,Z2, MX,MY, NX,NY, LX,LY, X S, T, SEP, PL2) C$ (Triple Surface - Stereo) C$ Make a stereo hidden-line drawing of three possibly C$ intersecting surfaces, hiding those parts of each surface C$ which are 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$ (08-JUN-85)