CVAX3DX plots a 3-d surface with hidden lines removed using PLT3D to produce a mesh surface or HLT3D to produce a 2-d histogram with an optional contour plot made GCONTR and plotted on a plane paralell to the surface plane. Axes and a back panel can be optionally plotted. Optionally, a path surface may be plotted which connects the surface and contour plots over a users specified path. The 3d surface is plotted in a manner similar to MVAX3DX. The visible upper side of the surface and the visible lower side of the surface can be optionally shown using different colors and line types.
Origin of the plot is in the upper-left corner. The x axis runs left to right along the plot bottom. The y axis is plotted as a vertical displacement offset by the z axis value. The z axis appears to point out of the screen. The contour plot is plotted below the surface with a user-specified vertical spacing. The contour plot plane is plotted paralell to the z=0 plane of the surface with the (i,j) indicies of the surface and contour plot aligned vertically. The user may specify a "path" using "pen" motions. The path is plotted as a curve along the surface and the contour plot plane with vertical lines at the corresponding indicies. No hidden line removal is used for the path. The path permits the user to specify a cut plane to enhance the interpretation of the plot. The path is specified as a sequence of pen motion commands and index points of the form,
ip(1) = 1st path command ip(2) = 1st i index ip(3) = 1st j index ip(4) = 2n path command ip(5) = 2nd i index ip(6) = 2nd j index ... etc.Path commands are interpreted according to:
path command action ______________ ___________________________ 0 end of path specification (indicies ignored) 3 start path at these indicies 2 continue path though indiciesThe path specificiation should start with a path command of 3 and end with 0. Note that several paths can be specified by using several path command 3's.
CVAX3DX contains an internal working storage array for use by GCONTR and PLT3D. The buffer length is sufficient for most surfaces. However, for very complex surfaces the buffer length may be exceeded. When this occurs an error message is written to the terminal and the routine terminates.
CALL CVAX3DX(d,ndx,ndz,nx,nz,a,b,xh,yh,zh,iflag, iax,ds,nc,cv,icl,nm,il,ip, <xt,nxt,xs,xe,xap,tsx,fdx, yt,nyt,yap,tsy,fdy, zt,nzt,zs,ze,zap,tsz,fdz,<dm,dx<,ic>>>) d (R): array of y values dimensioned d(ndx,ndz) ndx,ndz (I): x and z dimensions of d array nx,nz (I): x and z sizes of surface to plot d array a (R): angle of x axis from horizontal 0-85 degrees b (R): angle of z axis from horizontal 0-90 degrees note: origin (1,1) is in upper-left corner x axis runs left-to-right y axis runs down-to-up z axis appears to run outof page screen but is angled to the right xh,yh,zh (R): length of each axis iflag (I): option flag < 0 : do not close LONGLIB after plotting = 0 : close LONGLIB--no plot produced > 0 : close LONGLIB after plotting (magnitude) > 10000 : do not initialize LONGLIB before plotting (1's digit) = 2 : use color array (need all parameters) = 1 : do not use color array (10's digit) = 0 : plot surface as a mesh (PLT3D) = 1 : plot surface as 2-d historgram (HLT3D) (100's digit) = 0 : Ask which screen device to use <> 0 : Screen Device Number (see FRAME) iax (I): axis format control < 0 : plot axis, using input scale factors dm and dx = 0 : do not plot axis, axis parameters (xt...dx) not used scaling derived from d array is used > 0 : plot axis, using scaling derived from d array, only axis parameters xt thru ze accessed. (1's digit) = 1 : plot actual max/min or input values for Y axis = 2 : plot smoothed values for Y axis (10's digit) = 0 : plot contour, surface axes with back panel = 1 : plot contour, surface axes w/o back panel = 2 : plot contour axes w/o surface axes, back panel = 3 : plot surface axes w/o back panel, contour axes = 4 : plot surface axes, back panel w/o contour axes (100's digit) = 0 : use default axis type = 1 : use input AXIS3 parameters ds (R): vertical spacing between contour plane and minimum value of d plane nc (I): number of contours < 0 : iabs(nc) contours plotted, the (j)th contour is (max(a)-min(a))/(iabs(nc)-1). values used are returned in cv > 0 : contours specified in cv used cv (R): contour level array dimensioned dv(iabs(nc) icl (I): contour labeling option < 0 : label with contour value (number with n digits to the right of the decimal point) = 0 : no labels on contours > 0 : label contours with ASCII characters (nl <= 26) nm (I): minimum line segments before contour labeled < 0 : line type array used > 0 : line type array not used il (I): array of line types dimensioned il(iabs(nc)+2) il(1) = underside of surface il(2) = path line il(3) = contour line 1 il(4) = contour line 2 ... (solid line type on return) ip (I): path specification array (see notes above) if ip(1) = 0, remainder of array ignored (NOTE: following optional axis paramters are used only if iax<0 or mod(iflag,10)=1) xt (C): title of x axis (width) nxt (I): number of characters in xt = 0 : no axis plotted > 0 : normal xs,xe (R): starting and ending values displayed on x axis xap (R): axis tick pattern (see AXIS3) tsx (R): size of title and numbers on x axis < 0 auto exponent scaling (x10 to power) disabled > 0 auto exponent scaling (x10 to power) enabled fdx (R): axis number label format (see AXIS3) yt (C): title of y axis (height) nyt (I): number of characters in yt = 0 : no y axis plotted > 0 : normal yap (R): axis tick pattern (see AXIS3) tsy (R): size of title and numbers on x axis < 0 auto exponent scaling (x10 to power) disabled > 0 auto exponent scaling (x10 to power) enabled fdy (R): axis number label format (see AXIS3) zt (C): title of z axis (depth) nzt (I): number of characters in zt = 0 : no z axis plotted > 0 : normal ze,ze (R): starting and ending valued displayed on z axis zap (R): axis tick pattern (see AXIS3) tsz (R): size of title and numbers on x axis < 0 auto exponent scaling (x10 to power) disabled > 0 auto exponent scaling (x10 to power) enabled fdz (R): axis number label format (see AXIS3) (NOTE: the following are accessed only if iax<0 or mod(iflag,10)=1) dm,dx (R): minimum and maximum scale values for d array ic (I): color list ic(1) : color for axis lines ic(2) : color for axis numbers ic(3) : color for axis titles ic(4) : color for axis exponents ic(5) : color for upper surface ic(6) : color for lower surface ic(7) : color for contour 1 ic(8) : color for contour 2 ... ... (color for last contour on return)