.TH GVIEW 1
.SH NAME
gview \- interactive graph viewer
.SH SYNOPSIS
.B gview
[
.B -l
.I logfile
]
[
.B -m
]
[
.I file
]
.SH DESCRIPTION
.I Gview
reads polygonal lines or a polygonal line drawing from an
.B ASCII
input file (which defaults to standard input), and views it interactively,
with commands to zoom in and out, perform simple editing operations, and
display information about points and polylines.  The editing commands can
change the color and thickness of the polylines, delete (or undelete)
some of them, and optionally rotate and move them.  It is also possible to
generate an output file that reflects these changes and is in the same format
as the input.
.PP
Since the
.B move
and
.B rotate
commands are undesirable when just viewing a graph, they are only enabled if
.I gview
is invoked with the
.B -m
option.
.PP
Clicking on a polyline with button 1 displays the coordinates and a
.I t
value that tells how far along the polyline.
.IR (t =0
at the first vertex,
.IR t =1
at the first vertex,
.IR t =1.5
halfway between the second and third vertices, etc.)  The
.B -l
option generates a log file that lists all points selected in this manner.
.PP
The most important interactive operations are to
.I zoom in
by sweeping out a rectangle, or to
.I zoom out
so that everything currently being displayed shrinks to fit in the swept-out
rectangle.  Other options on the button 3 menu are
.I unzoom
which restores the coordinate system to the default state where everything
fits on the screen,
.I recenter
which takes a point and makes it the center of the window, and
.I square up
which makes the horizontal and vertical scale factors equal.
.PP
To take a graph of a function where some part is almost linear and
see how it deviates from a straight line, select two points on this
part of the graph (i.e., select one with button 1 and then select the
other) and then use the
.I slant
command on the button 3 menu.
This slants the coordinate system so that the line between the two
selected points appears horizontal (but vertical still means positive
.IR y ).
Then the
.I zoom in
command can be used to accentuate deviations from horizontal.
There is also an
.I unslant
command that undoes all of this and goes back to an unslanted coordinate
system.
.PP
There is a
.I recolor
command on button 3 that lets you select a color and change everything
to have that color, and a similar command on button 2 that only affects
the selected polyline.  The
.I thick
or
.I thin
command on button 2 changes the thickness of the selected polyline
and there is also an undo command for such edits.
.PP
Finally, button 3 had commands to
.I read
a new input file and display it on top of everything else,
.I restack
the drawing order (in case lines of different color are drawn on top of
each other),
.I write
everything into an output file, or
.I exit
the program.
.PP
Each polyline in an input or output file is a space-delimited
.I x
.I y
coordinate pair on a line by itself, and the polyline is a sequence
of such vertices followed by a label.  The label could be just a
blank line or it could be a string in double
quotes, or virtually any text that does not contain spaces and is
on a line by itself.  The label at the end of the last polyline is
optional.   It is not legal to have two consecutive labels, since that
would denote a zero-vertex polyline and each polyline must have at least
one vertex. (One-vertex polylines are useful for scatter plots.)

If the label after a polyline can contains the word
.B "Thick"
or a color name
.BR (Red ,
.BR Pink ,
.BR Dkred ,
.BR Orange ,
.BR Yellow ,
.BR Dkyellow ,
.BR Green ,
.BR Dkgreen ,
.BR Cyan ,
.BR Blue ,
.BR Ltblue ,
.BR Magenta ,
.BR Violet ,
.BR Gray ,
.BR Black ,
.BR White ),
whichever color name comes first will be used to color the polyline.
.SH EXAMPLE
To see a graph of the function
.IR y = sin( x )/ x ,
generate input with an awk script and pipe it into
.IR gview :
.IP
.EX
awk 'BEGIN{for(x=.1;x<500;x+=.1)print x,sin(x)/x}' | gview
.EE
.SH SOURCE
.B \*9/src/cmd/draw/gview.c
.SH SEE ALSO
.IR awk (1)
.SH BUGS
The user interface for the
.I slant
command is counter-intuitive.  Perhaps it would be better to have a scheme
for sweeping out a parallelogram.
