ART(1)                                                     ART(1)

     NAME
          art, art2pic - edit line-art

     SYNOPSIS
          art [ font ]

          art2pic file

     DESCRIPTION
          Art is an interactive program to create precise line-art in
          the style of pic(1). It is mostly mouse-operated, with a few
          commands entered from the keyboard.  It divides its layer
          into four areas: a menu bar at the top, a one-line rectangle
          immediately below for echoing typed-in characters, another
          one-line rectangle below that for printing messages, and a
          large area at the bottom for displaying the drawing.

          A small caret whose apex is the current point, appears on
          the screen.  The lines, arcs and other elements of a drawing
          are constructed by placing the caret at each of a sequence
          of points that define the item.  When the caret moves, two
          other markers (a square and a cross) trail it, showing its
          previous positions.  Items on the screen near the caret
          attract it.  Important points on items, like endpoints or
          intersections, pull harder than more mundane points, making
          precise alignment easy.

          On request, art will automatically construct alignment lines
          and circles, which it displays more faintly than items in
          the drawing.  Certain lines and points in a drawing are hot.
          Art constructs circles of given radii and lines of given
          slopes at hot points, and parallels at given distances from
          hot lines and lines at given angles to their endpoints.
          Menus pulled down from the menu bar control what alignment
          items are constructed.  Items are automatically heated when
          added to the drawing and will be heated or cooled on com-
          mand.

          The `important points' on a line segment to which the caret
          preferentially gravitates are its endpoints and midpoint.
          On a circle, the center is important.  On an arc, the end-
          points are important.  On a box, the corners, the midpoints
          of the sides and the center are important.  Likewise, on a
          piece of text, the corners, midpoints and center of its
          bounding box are important.  On a spline, the control points
          are important, and in a group, the important points of the
          group members are important.

          Whenever button 1 is pressed, the caret follows the mouse
          cursor.  On release, the item the caret is touching, if any,

     Page 1                       Plan 9            (printed 12/22/24)

     ART(1)                                                     ART(1)

          is selected and highlighted.  If more than one item touches
          the caret, clicking button 1 repeatedly will cycle through
          them.

          Pressing button 2 pops up a menu of commands that add new
          items to the drawing.  Every item is described by several
          control points: a line by its endpoints, a circular arc by
          its endpoints and a third point on the arc, and so forth.  A
          new item is specified by moving the caret in turn to each
          control point but the last, selecting a menu entry with but-
          ton two, then using button 1 to place the caret on the last
          control point.  (Buttons 2 and 3 will cancel the command.)
          While the caret is being dragged to the last control point,
          art displays and updates the item on the screen (``rubber-
          banding'').  In all cases, after making an addition to the
          drawing, the new item becomes the current selection.  The
          button 2 menu operations are

          line       Add a line segment to the drawing.  The two con-
                     trol points are the segment's endpoints.
          circle     Add a circle to the drawing.  The first control
                     point is the center.  The second is a point on
                     the circumference.
          arc        Add a circular arc to the drawing.  The endpoints
                     are the first and third control points.  The sec-
                     ond control point is an interior point of the
                     arc.
          box        Add a rectangle to the drawing.  The box's sides
                     are vertical and horizontal.  The two control
                     points are two diagonally opposite corners.
          spline     Add a spline curve to the drawing, or extend an
                     existing spline.  Splines are a little more com-
                     plicated than other items because they may have
                     any number of control points.  If the current
                     selection is not a spline, there are two control
                     points - the ends of a new spline.  When a spline
                     is selected, the spline button adds a new control
                     point to the end of the spline closest to the
                     selected point.
          group      Add a group to the drawing.  The two control
                     points are the diagonally opposite corners of a
                     rectangle.  Any item partially or completely con-
                     tained in the rectangle is made part of the
                     group.  Henceforth the group acts as a monolithic
                     item and may be moved, deleted or copied as a
                     unit.  The open, close and flatten commands (on
                     button 3) allow manipulation of the items within
                     a group.  Groups may be nested within other
                     groups.
          Button 3's menu has commands to manipulate the current
          selection.
          delete     Remove the selection from the drawing.  If the

     Page 2                       Plan 9            (printed 12/22/24)

     ART(1)                                                     ART(1)

                     whole drawing is selected, art asks for confirma-
                     tion by pressing mouse button 3.  Buttons 1 and 2
                     cancel the command.
          heat       Heat the selected item.
          copy       Create a duplicate of the selected item.  The
                     duplicate must be dragged to its intended posi-
                     tion using button 1.  Buttons 2 and 3 cancel the
                     command.
          edit       Change the indicated point of the selected item.
                     Button 1 adjusts the point.  Buttons 2 and 3 can-
                     cel the command.  This command's behavior depends
                     on the kind of item and the point at which it is
                     selected.
                     If a line is selected near an endpoint, that end-
                     point moves and the other remains fixed.  Both
                     endpoints of a line selected near its midpoint
                     move-its length and slope do not change.
                     If a circle selected at its center, it translates
                     without changing its radius.  If selected on its
                     circumference, its radius changes but its center
                     remains fixed.
                     The control point of an arc or spline nearest the
                     selection point is modified.
                     If a box is selected near a corner, that corner
                     moves and the other remains fixed.  If selected
                     near the middle of an edge, the edge moves, but
                     the opposite edge remains fixed.  If selected
                     near its center, the whole box moves without
                     changing its size or shape.
                     A group or a piece of text translates, regardless
                     of the selection point.
          open       The selection must be a group.  All commands now
                     operate on the members of the group.
          close      The most-recently opened group is closed.  Any
                     changes made while it was open are propagated to
                     other copies.
          flatten    The selection must be a group.  The items in the
                     group are inserted in its place in the drawing.
                     This undoes the effect of the group command.
                     Other copies of the group are unaffected.
          Keyboard commands:
          t text     Add text to the drawing.  The text is in the cur-
                     rent font and is drawn centered on the caret.
          f name     Set the current typeface.  Name is the name of a
                     font file.  Subdirectories of /lib/font/bit con-
                     tain many appropriate fonts.
          D          Redraw the display.
          q          Quit.  Art exits, without asking for confirma-
                     tion.
          w [file]   Write the drawing into a file in art format.
                     File defaults to the last file mentioned in a
                     read or write command.  Art files may be

     Page 3                       Plan 9            (printed 12/22/24)

     ART(1)                                                     ART(1)

                     converted to pic(1) format by the art2pic com-
                     mand.
          r [file]   Read a drawing from a file.  File defaults to the
                     last file mentioned in a read or write command.
          c          Cool everything.  Every hot item is cooled.
          a          Select all items.  The entire drawing is
                     selected.
          d          Drop anchor.  The anchor is the fixed point for
                     the not-yet-implemented rotate and scale com-
                     mands.
          Menus pulled down from the menu bar contain commands that
          alter how art responds to user interaction.
          slopes     Most of the entries in this menu are numbers,
                     representing angles in degrees.  Those that are
                     marked with a star are the inclination from hori-
                     zontal of alignment lines constructed at each hot
                     point of the drawing.  Selecting a number toggles
                     the star on and off.  The measure button measures
                     the slope of the line connecting the most recent
                     two points selected with the caret.  The measure-
                     ment is printed, and a corresponding new entry is
                     made in the menu.
          angles     This menu behaves much like the slopes menu.
                     Items marked with a star are angles at which
                     alignment lines are drawn through the endpoints
                     of hot lines.  The measure button measures the
                     angle indicated by the most recent three points
                     selected with the caret.
          parallels  Items marked with a star are distances at which
                     alignment lines are drawn parallel to hot lines.
                     The measure button measures the distance between
                     the most recent two points selected with the
                     caret.  Distances are nominally in inches, but
                     the program believes the display pitch to be 100
                     pixels per inch.
          circles    Items marked with a star are radii of alignment
                     circles drawn with centers at hot points.  The
                     measure button measures the distance between the
                     most recent two points selected with the caret.
          grid       Items in this menu activate a rectangular grid of
                     gravitating points.  They have labels like
                     0,0+.1,.1.  The first pair of numbers is the
                     coordinate of a point on the grid; the other pair
                     is the x and y displacements of other points.
                     The off item disables the grid (the default situ-
                     ation).  Measure creates a custom-measured grid
                     using the last two positions of the caret as
                     diagonally adjacent grid-points.
          gravity    The starred entry on this menu is the maximum
                     distance that the caret will move from the mouse
                     cursor to snap to an item on the screen.
          heating    The heat new button toggles whether objects are

     Page 4                       Plan 9            (printed 12/22/24)

     ART(1)                                                     ART(1)

                     automatically heated when created or modified.
                     The item is marked with a `*' if set, as it is
                     initially.

     SEE ALSO
          tweak(1)

     BUGS
          Only works on 2-bit displays (gnot, nextstation.)  Doesn't
          compute intersections of splines with circles or arcs.  No
          filled regions, line styles or arrowheads.  Doesn't save
          construction lines in files.  Because it draws in xor mode
          when rubber-banding, lines can momentarily disappear.
          Tracks slowly in large drawings.

     Page 5                       Plan 9            (printed 12/22/24)