PLOT3(5)

NAME
plot3 - 3-D and color graphic plotting interface

DESCRIPTION
Files of this format are produced by programs such as pixhist3d-pl(1), using the routines described in libplot3(3) and are interpreted for various devices by standard programs described in plot(1G), as well as additional programs such as pl-fb(1). The format of output from libplot3 differs from that of libplot only in the addition of 3-D primatives and color. A graphics file is a stream of plotting instructions. Each instruction consists of an ASCII letter usually followed by bytes of binary information. The instructions are executed in order. A point is designated by four bytes representing the x and y values; each value is a signed 16-bit integer. These integers are written with the most significant byte first. Three-dimensional data have an additional z value, which is assumed to be zero for two-dimensional instructions. The last designated point in an l, m, n, p, L, M, N, or P instruction becomes the ``current point'' for the next instruction.

Each of the following descriptions begins with the name of the corresponding routine in libplot3(3).

m   move: The next four bytes give a new current point.

n   cont: Draw a line from the current point to the point given by the next four bytes. See plot(1G).

p   point: Plot the point given by the next four bytes.

l   line: Draw a line from the point given by the next four bytes to the point given by the following four bytes.

t   label: Place the following ASCII string so that its first character falls on the current point. The string is terminated by a new-line.

a   arc: The first four bytes give the center, the next four give the starting point, and the last four give the end point of a circular arc. The least significant coordinate of the end point is used only to determine the quadrant. The arc is drawn counter-clockwise.

c   circle: The first four bytes give the center of the circle, the next two the radius. Circles and arcs are not supported on all devices.

e   erase: Start another frame of output.

f   linmod: Take the following string, up to a new-line, as the style for drawing further lines. The styles are ``dotted'', ``solid'', ``longdashed'', ``shortdashed'', and ``dotdashed''. Effective only for the -T4014 and -Tver options of plot(1G) (TEKTRONIX 4014 terminal and Versatec plotter).

s   space: The next four bytes give the lower left corner of the plotting area; the following four give the upper right corner. The plot will be magnified or reduced to fit the device as closely as possible.

The following were added at BRL. Three-dimensional primitives have their z values ignored when displayed on two-dimensional devices.

C   color: The next three bytes give respectively the intensities (0..255) of the three color components (additive colors red, green, and blue if a terminal; subtractive colors cyan, magenta, and yellow if hardcopy) to be used for subsequent plotting. The initial color is assumed to be (255,255,255), which is white on a terminal and black on hardcopy. Color specifications are ignored for black-and-white devices.

M   3move: The next six bytes give a new current point.

N   3cont: Draw a line from the current point to the point given by the next six bytes. See plot(1G).

P   3point: Plot the point given by the next six bytes.

L   3line: Draw a line from the point given by the next six bytes to the point given by the following six bytes.

S   3space: The next six bytes give the minimum corner of the plotting area; the following six give the maximum corner. The plot will be magnified or reduced to fit the device as closely as possible.

F   3flush:

x   double_point: The double-precision version of point.

v   double_line: The double-precision version of line.

o   double_move: The double-precision version of move.

q   double_cont: The double-precision version of cont.

w   double_space: The double-precision version of space.

i   double_circle: The double-precision version of circle.

r   double_arc: The double-precision version of arc.

W   double_3space: The double-precision, 3_D version of space.

X   double_3point: The double-precision, 3_D version of point.

O   double_3move: The double-precision, 3_D version of move.

Q   double_3cont: The double-precision, 3_D version of cont.

V   double_3line: The double-precision, 3_D version of line.

Space settings that exactly fill the plotting area with unity scaling appear below for devices supported by the filters of plot(1G). The upper limit is just outside the plotting area, except for the Megatek which displays the entire range of possible coordinates. In every case the plotting area is taken to be square; points outside may be displayable on devices whose face is not square.

    DASI 300
        space(0, 0, 4096, 4096);
    DASI 300s
        space(0, 0, 4096, 4096);
    DASI 450
        space(0, 0, 4096, 4096);
    TEKTRONIX 4014
        space(0, 0, 3120, 3120);
    Versatec plotter
        space(0, 0, 2048, 2048);
    Megatek display
        space(-32768, -32768, 32767, 32767);

SEE ALSO
libplot3(3), plot(3), plot(5).
graph(1G), plot(1G) in the UNIX System User Reference Manual.

AUTHOR
Douglas A. Gwyn made the 3-D and color extensions to UNIX-plot.

SOURCE
SECAD/VLD Computing Consortium, Bldg 394
The U. S. Army Ballistic Research Laboratory
Aberdeen Proving Ground, Maryland 21005

BUG REPORTS
Reports of bugs or problems should be submitted via electronic mail to <devs@brlcad.org>.