mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
d32deab17b
Suggested by G. Brandon Robinson.
152 lines
4.1 KiB
Groff
152 lines
4.1 KiB
Groff
.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
|
|
.MR 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.
|