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)