


FIG(1)                   USER COMMANDS                     FIG(1)



NAME
     fig - Facility for Interactive Generation of figures

SYNOPSIS
     fig [ -r ] [ file ]

DESCRIPTION
     Fig is a menu-driven tool that allows the user to  draw  and
     manipulate  objects  interactively  on  the  screen of a Sun
     Workstation. It  can  only  be  run  within  the  SunWindows
     environment  and requires a three-button mouse.  File speci-
     fies the name of a file to be  edited.  The  description  of
     objects in the file will be read at the start of fig.

     The output from fig can be printed by first using  f2p  (fig
     to  pic(1)  translator,  also  known  by  its  previous name
     ftop(1L)) to translate it into pic(1) language.  The  pic(1)
     file  can  be  saved and edited like ordinary text file.  To
     print the file one should issue the command:
     pic file | troff
     adding any required options to the invocation  of  troff(1).
     The  file may be used in conjunction with any other troff(1)
     preprocessors.

     Another way to produce a hrad copy is to use f2ps  (the  fig
     to  postscript translator) to produce a postscript file from
     fig file.  The postscript file can be  sent  directly  to  a
     postscript printer via lpr(1).

OPTIONS
     -r   Change the position of the panel window to the right of
          the canvas window (default: left).

GRAPHICAL OBJECTS
     The objects in fig are divided into  primitive  objects  and
     compound  object.  The  primitive  objects are: ARC, CIRCLE,
     CLOSED SPLINE, ELLIPSE, POLYLINE, POLYGON, SPLINE, and TEXT.
     A  primitive  can  be  moved,  rotated,  flipped,  copied or
     erased.  A compound object is composed of primitive objects.
     The  primitive objects that constitute a compound can not be
     individually modified, but they can  be  manipulated  as  an
     entity; a compound can be moved, rotated, flipped, copied or
     erased.  An extra function that can be applied to a compound
     object  is  scaling,  which  is  not available for primitive
     objects.

DISPLAY WINDOWS
     Three windows comprise the display area of  fig:  the  panel
     window  the  message window, and the canvas window. The mes-
     sage window always appears below the others; it is the  area
     in  which  messages are sent and received. from the The menu
     window can be placed to the left or right of the the  canvas
     window (default: left).

POP-UP MENU
     The pop-up menu appears  when  the  right  mouse  button  is
     pressed with the cursor positioned within the canvas window.
     Positioning the cursor  over  the  desired  menu  entry  and
     releasing the button selects a menu entry.

     There are a number of file accessing functions in the pop-up
     menu.   Most  of  the  time  when  one of these functions is
     selected, the user will be asked for a file  name.   If  the
     specified  file can be located and the access permission are
     granted, fig will carry out the function.  However  in  case
     things go wrong, fig will abort the function and printed the
     causes on the message window.

     Undo Undo the last object creation or modification.

     Redisplay
          Redraw the canvas.

     Remove all
          Remove  all  objects  on  the  canvas  window  (can  be
          undone).

     Edit file ...
          The current contents of  the  canvas  are  cleared  and
          objects  are  read  from  the specified file.  The user
          will be asked for a file name.  This file  will  become
          the current file.

     Save Save the current contents of the canvas in the  current
          file.   If  no  file  is being edited, the user will be
          asked for a file name as in the "Save in ..." function.

     Read file ...
          Read objects from the specified  file  and  merge  them
          with  objects  already  shown on the canvas.  (The user
          will be asked for a file name.)

     Save as ...
          Save objects on the screen into a file specified by the
          user.  (The user will be asked for a file name.)

     Status
          Show the name of the current file and directory.

     Change Directory
          Change the working directory.  Any file name without  a
          full  path  name will employ the current working direc-
          tory.

     Save & Exit
          Save the objects in the current file and exit from fig.
          If there is no current file, the user will be asked for
          a file name.  No confirmation will be asked.

     Quit Exit from fig, discarding all objects. The user will be
          asked  to confirm the action, by clicking the left but-
          ton.

     Save as BITMAP ...
          Create a bitmap picture of the drawings  for  use  with
          other  tools  (for  example,  for use as an icon).  The
          smallest rectangular area of  pixels  that  encompasses
          the  figure is written to the named file (the user will
          be asked for a file name) from top row  to  bottom  and
          left  to  right  (in  Sun  raster  format).   Only TEXT
          objects that are parts  of  compound  objects  will  be
          treated  as parts of the picture; other texts are saved
          as objects in fig format  following  the  bitmap  data.
          The  coordinates  of  these text objects can be used to
          identify locations on the bitmap.

MENU WINDOW MANIPULATION FUNCTIONS
     Icons in the menu window represent object manipulation func-
     tions,  modes and other drawing or modification aids.  Mani-
     pulation functions are selected by  positioning  the  cursor
     over  it  and  clicking the left mouse button.  The selected
     icon is highlighted, and a message describing  its  function
     appears in the message window.

     The left and middle buttons are used  to  creat  and  modify
     objects  in  the  canvas  window.   Most  actions start with
     clicking of the left button and end  with  clicking  of  the
     right  button.  There is no need to hold down a button while
     positioning the cursor.

MENU WINDOW COMMAND DESCRIPTIONS
     Entries in the panel  window  can  be  classified  into  two
     categories:  object  creation/modification/removal  commands
     (only one of which may be active at any one time), and draw-
     ing aids (which act as toggle switches).  There are two ways
     for drawing circles, two for ellipses, two for  splines  and
     two  for  closed splines.  There are two basic splines.  One
     is the interpolated spline in which the spline pass thorough
     the  entered points (knots).  The other is the normal spline
     in which on control points are passed by the spline  (except
     for the two end points in the open spline).

OBJECT CREATION/MODIFICATION/REMOVAL
     Multiple commands are grouped thematically in the  following
     descriptions (which is listed alphabetically).

     ADD/DELETE ARROWS
          Add or delete arrow heads for POLYLINE, POLYGON, SPLINE
          or  CLOSED  SPLINE  objects (points of a BOX can not be
          added or deleted).

     ADD/DELETE POINTS
          Add or delete points for POLYLINE, POLYGON,  SPLINE  or
          CLOSED SPLINE objects (points of a BOX can not be added
          or deleted).

     ARC  Create an arc.  Specify three  points  using  the  left
          button.

     BOX  Create rectangular boxes.  Start with the  left  button
          and terminate with the right button.

     BREAK COMPOUND
          Break  a compound object to allow manipulation  of  its
          component parts.  Click the left button on the bounding
          box of the compound object.

     CIRCLE
          Create circles by specifying their radii or  diameters.
          Click  the  left  button on the canvas window, move the
          cursor until the desired radius or diameter is reached,
          then  click  the middle button to terminate. The circle
          will be drawn after the pressing of the middle button.

     CLOSED INTERPOLATED SPLINE
          Create closed or periodic  splines.   The  function  is
          similar  to  POLYGON  except that a closed interpolated
          spline is drawn.  The  spline  will  pass  through  the
          points (knots).

     CLOSED SPLINE
          Create closed or periodic spline objects.  The function
          is  similar to POLYGON except that a closed spline will
          be drawn instead of polygon.  The  entered  points  are
          just control points; i.e., the spline will not pass any
          of these points.

     COPY Copy object.  Click the left button over  part  of  the
          object  to  be  copied (for CIRCLE and ELLIPSE objects,
          position on their circumferences).  Drag the object  to
          the desired position and click the middle button.  This
          function as  well  as  the  following  three  functions
          (MOVE,  MOVE  POINT,  REMOVE)  will cause point markers
          (manipulation aids) to be shown on the  canvas  window.
          There are no markers for CIRCLE or ELLIPSE objects.

     ELLIPSE
          Create ellipses using the same  procedure  as  for  the
          drawing of circles.

     GLUE Glue the primitive objects within a bounding box into a
          compound object (the bounding box itself is not part of
          the figure; it is a visual  aid  for  manipulating  the
          compound).

     INTERPOLATED SPLINE
          Create (cubic spline) spline  objects.   Enter  control
          vectors  in  the same way as for creation of a POLYLINE
          object.  At least three points  (two  control  vectors)
          must  be  entered.   The  spline  will pass through the
          entered points.

     MOVE Move objects in the same way as in COPY.

     MOVE POINT
          Modify  the  position  of  points  of  POLYLINE,   BOX,
          POLYGON,  ELLIPSE,  ARC  and SPLINE objects.  Click the
          left button over  the  desired  point,  reposition  the
          point,  and click the middle button.  Note that BOX and
          POLYGON  objects  are  internally  stored  as  POLYLINE
          objects,  and  therefore moving certain points may open
          these objects.

     POLYGON
          Same as POLYLINE except that a line  segment  is  drawn
          connecting the first and last points entered.

     POLYLINE
          Create polylines (line segments connecting  a  sequence
          of  points).   Enter points by clicking the left button
          at the desired positions on the canvas  window.   Click
          the middle button to terminate.

     REMOVE
          Remove (or delete) objects.

     SCALE COMPOUND
          Only compound objects can be scaled.   Click  the  left
          button  on  a  corner  of the bounding box, stretch the
          bounding box to the desired size, and click the  middle
          button.

     SPLINE
          Create (quadratic spline) spline objects.   Enter  con-
          trol vectors in the same way as for creation of a POLY-
          LINE object.  At least three points (two  control  vec-
          tors)  must  be entered.  The spline will pass only the
          two end points.

     TEXT Create text strings.  Click  the  left  button  at  the
          desired  position on the canvas window, then enter text
          from the keyboard.  Terminate by  clicking  the  middle
          button or typing the return key.

     TURN Turn POLYGON into a CLOSED INTERPOLATED SPLINE  object,
          or turn POLYLINE into a INTERPOLATED SPLINE object.

DRAWING AIDS
     Drawing aids act as toggle switches. More than  one  can  be
     selected  at  a  time  (except for GRID and the line drawing
     modes).

     AUTO FORWARD/BACKWARD ARROW
          Automatically add forward/backward arrow heads to POLY-
          LINE, SPLINE or ARC objects.

     FLIP Invert the object (middle button) or produce a  mirror-
          image copy of an object (left button). Point to part of
          the object ("the handle"), click the  appropriate  but-
          ton.

     GRID Display either the quarter- or  half-inch  grids  (left
          button).

     MAGNET
          Round points to the nearest  1/16  of  an  inch.   This
          affects every function, and is provided as an alignment
          aid.

     UNRESTRICTED
          Allow lines to be drawn with any slope.

     MANHATTAN
          Enforce drawing of lines in the horizontal and vertical
          direction  only.   Both  MANHATTAN  and MOUNTAIN can be
          turned on simultaneously.  The  creations  of  POLYGON,
          POLYLINE  and  SPLINE objects are affected by these two
          modes.

     MOUNTAIN
          Enforce drawing of only diagonal lines.  Both MANHATTAN
          and MOUNTAIN can be turned on simultaneously. The crea-
          tions of  POLYGON,  POLYLINE  and  SPLINE  objects  are
          affected by these two modes.

     MANHATTAN MOUNTAIN
          Allow lines to be drawn at any slope  allowed  when  in
          MOUNTIAIN or MANHATTAN modes.

     LATEX LINE
          Allow lines to be drawn only at  slopes  which  can  be
          handled  by  LaTeX  picture  environment lines: slope =
          x/y, where x,y are integers in the range [-6,6].

     LATEX VECTOR
          Allow lines to be drawn only at  slopes  which  can  be
          handled  by  LaTeX picture environment vectors: slope =
          x/y, where x,y are integers in the range [-4,4].

     ROTATE
          Rotate the object (middle button) or copy (left button)
          +90 degrees.

     SOLID/DASHED LINE STYLE
          Toggle between solid and dashed line styles.  The  dash
          length is fixed at 0.05 inch.

BUGS
     Text strings will appear differently on hard  copy,  because
     the display fonts are fixed-width fonts while the fonts used
     by pic(1) are variable-width fonts.

     A double quote in a text string should be preceded by a back
     slash if the it is to be printed through pic(1).

     Objects that extend beyond the canvas window may cause image
     shrinkage  in hard copy printed by pic(1), since it will try
     to fit every object onto a single 8.5" x 11" page.

     Ellipses which are too narrow may cause fig to loop forever.

     Objects which are created while one of the grids is  on  may
     appear  ragged. This can be corrected by selecting Redisplay
     from the pop-up menu.

     The X11 cursors are not the original ones  but  chosen  from
     X11's cursor font.

     Righthand panel is not supported. It should be  possible  to
     do that but Ken was too lazy.

SEE ALSO
     Brian W. Kernighan PIC - A Graphics Language for Typesetting
     User Manual
     col(1) ditroff(1), eqn(1), f2p(1), f2ps(1),  man(7),  me(7),
     ms(7), pic(1), tbl(1), troff(1),

ACKNOWLEDGEMENT
     Many thanks goes to Professor Donald E. Fussell who inspired
     the creation of this tool.

AUTHOR
     Supoj Sutanthavibul
     University of Texas at Austin
     (supoj@sally.UTEXAS.EDU)

     Manual page modified by R. P. C.  Rodgers,  UCSF  School  of
     Pharmacy, San Francisco, CA 94118

     Frank Schmuck of Cornell contributed the LaTeX line  drawing
     modes.
