[comp.graphics] UNO - A Graphics Editor

ram@deepthot.UUCP (10/03/87)

UNO is a graphics editor that is meant to be an aid to document
preparation; it was developed on a Sun workstation but the code seems
to port to other UNIX systems with little difficulty. UNO images can
be included in TeX and LaTeX documents if the DVI driver supports the
\special command.  Here is a brief synopsis of what UNO can do:
1. All coordinates, sizes etc. have to be specified as pixels. For
   example, to draw two concentric circles centered at the point 100:200
   with radii 50 and 60 pixels, you type: circle rad=50,60 100:200;
   To draw a smooth curve through the points 100:100, 50:150, 150:200,
   and 100:250 with horizontal tangents at the two middle points you
   type: spline 100:100, 50:150<0, 150:200<0, 100:250;
2. UNO input  consists of a sequence of semicolon separated 'commands'
   (such as the above); these can come from the terminal or can be
   executed from a file with the command : execute 'filename';
   This provides a primitive subprogram capability. You can declare and
   use integer and real variables, so one can simulate parameterized
   subprograms in a primitive way.
3. No control structures of any kind (e.g. if statements, loops) exist;
   nor do macro facilities. The idea is to keep the input language
   simple so that people can learn quickly and produce simple diagrams
   with a minimum of fuss. Conventional macro processors and compilers
   should be used to programmatically generate UNO programs if
   necessary.
4. Commands exist for drawing circles, (axially oriented) ellipses and
   boxes, lines, regular polygons, splines, grids, circular arcs,
   dotted objects (any of above) with a user specifiable dot pattern,
   and for selecting the segments of a line to be actually drawn (this
   is useful when drawing an arrow from the center of one circle to
   the center of another; one can select just the portion of the line
   that lies outside both circles to be drawn without having to
   calculate the coordinates of the intersection points).
5. Lines of symmetry in the four principal orientations can be defined
   at any point so that all future drawing is reflected across some or
   all of these lines.
6. Any user defined picture can be used as the pen to draw.
7. Arbitrary 4-connected regions can be filled with an arbitrary user
   defined pattern.
8. A single UNO font is provided for text; the font file is a plain
   text file with a simple format, so users can create their own fonts
   easily. In practice this single font suffices for most purposes,
   since text can be drawn with different pens to obtain bold text,
   outline text, shadow text, calligraphy etc. Text can also be scaled
   vertically or horizontally arbitrarily, can be skewed to the right
   or left (e.g to get italics), or rotated.
9. The entire image is kept in memory as a bitmap (pixrect format) and
   can be saved on disk as such (Sun rasterfile format). There is a
   display command which, on a Sun console under Suntools, will pop up
   a display window with two scroll bars showing the current image. All
   subsequent drawing is automatically and almost instantaneously shown
   in this window; mouse coordinates are dynamically reflected in a
   small panel at the top of the window; with this exception, the
   display window is entirely passive: ALL input has to come from the
   parent window in the usual way. There is also a dump command which
   can dump a small portion of the image on an ASCII screen using an
   asterisk (*) for black pixels and a blank for white pixels; so UNO
   is usable even from dumb terminals. Getting hard copy is a matter
   of writing a Sun rasterfile-to-printer driver; a driver exists for
   the QMS PS-800 (PostScript, 300 dpi) printer and another for the
   Toshiba P1351 dot-matrix printer (180 dpi). For other printers
   you'll have to write your own.
10. There is no support whatsoever for color.
11. A Tutorial that explains how to use UNO and serves as a manual of
    sorts is available; it runs about 35 LaTeX typeset pages.

====================================================================
For more information mail a request to:

ram@uwovax.BITNET  or  ram@julian.UUCP  or  ram@uwocsd.UWO.CDN  or  
	...!decvax!utzoo!julian!uwocsd!ram
	...!ihnp4!watmath!julian!uwocsd!ram

      M.V.S. Ramanath @ Department of Computer Science
                        The University of Western Ontario
                        London, Ontario, Canada N6A 5B7
                        Phone: (519) 679-2111 (ext. 6896)