Previous: pltlx Up: ../plot79_p.html Next: pltma
SUBROUTINE PLTLX3 (X,Y,Z, DX,DY,DZ, PX,PY,PZ, TITLE,NCHAR, SIZE, X VSTART,DECSIZ, TICK, MODE) C$ (Axis - Logarithmic Three Dimensional) C$ Draw a logarithmic axis in 3-D space. This routine C$ provides a convenient user interface to the 2-D logarithmic C$ axis routine, PLTLX. It uses the axis origin, axis C$ direction, and lettering plane specified to define a world C$ coordinate modelling transformation matrix which will map a C$ 2-D axis drawn by PLTLX onto the desired axis. The C$ arguments are: C$ C$ (X,Y,Z)........3-D world coordinates of origin of axis. C$ The coordinate system may be either C$ right-handed or left-handed. C$ (DX,DY,DZ).....Vector defining the direction of the axis. C$ It need not be normalized. C$ (PX,PY,PZ).....Vector defining the normal vector of the C$ plane in which lettering will be drawn. It C$ points away from an observer reading the C$ lettering from in front of the plane. It C$ need not be normalized. C$ C$ The remaining variables are exactly those passed to PLTLX, C$ the descriptions of which follow: C$ C$ TITLE...Hollerith label for the axis. This is always drawn C$ centered along the axis in the direction away from C$ (X,Y). Very long titles will be drawn with smaller C$ characters in order to fit on one line. Leading C$ and trailing blanks are automatically ignored for C$ the purposes of centering. C$ C$ NCHAR... .GT. 0 - Number of characters in TITLE(*). The C$ current font will be used. C$ .LE. 0 - No title to be drawn. C$ C$ SIZE....Length of the axis in world units. SIZE .LE. 0.0 C$ will be assumed to be bad input and will cause C$ immediate return. C$ C$ THETA...Counterclockwise angle of inclination of axis in C$ degrees. THETA = 0.0 for a horizontal axis, and C$ 90.0 for a vertical axis. C$ C$ VSTART....Starting value of variable along axis. If it is C$ not an integral power of ten, a partial decade C$ will be drawn, so that the starting value will C$ actually be VSTART, rather than the closest C$ multiple of ten. C$ C$ DECSIZ....Number of world units/decade. C$ C$ TICK.... .GT. 0.0 - Length of tick marks above C$ (counterclockwise from) the axis. C$ .EQ. 0.0 - No tick marks to be drawn. C$ .LT. 0.0 - Length of tick marks below (clockwise C$ from) the axis. C$ A usual value will be TICK = 0.015 on the unit C$ square, but choosing TICK equal to the length of C$ the perpendicular axes will form a grid. C$ C$ MODE......Option flags stored in the low-order bits of the C$ integer value. These are selected by adding one C$ or more of the following option values, and then C$ setting the sign of the resulting sum to select C$ numbering and titling above (+) or below (-) the C$ axis. C$ C$ 1 - Number the axis. Even values of MODE C$ suppress numbering, but still affect the C$ choice of tick mark spacing. C$ 2 - Numbering perpendicular (i.e. rotated -90 C$ degrees) to the axis; otherwise it is C$ parallel to the axis. C$ 4 - Omit the first number along the axis. This C$ can be useful to prevent text overlap when C$ more than one axis is drawn from a point. C$ 8 - Omit the last number along the axis. C$ C$ Any value outside the legal range -15..+15 will C$ raise an error condition. The usual choice for a C$ numbered left vertical (Y) axis will be MODE = C$ +3, and for a numbered lower horizontal (X) axis C$ will be MODE = -1. The usual choice for an C$ unnumbered right vertical axis will be MODE = +2 C$ or -2, and for an unnumbered upper horizontal C$ axis will be MODE = 0. C$ C$ The sizes and positions of number labels, even if C$ they are not drawn, affect the choice of where C$ longer tick marks are drawn. In the common case C$ where the four sides of a graph have axes, but C$ two are unnumbered, for the unnumbered axes, C$ simply subtract 1 from the unsigned MODE value C$ used for the opposite numbered axis. C$ C$ See SUBROUTINE PLTLX for further remarks on axis plotting. C$ C$ (19-MAR-84)