The draw tools annotates your image with one or more graphic primitives.

Choose from these graphic primitives:

point line rectangle roundRectangle arc ellipse circle polyline polygon bezier path

**Point** and **line** each require a single coordinate.
**Line** requires a start and end coordinate, while
**rectangle** expects an upper left and lower right coordinate.
**roundRectangle** has a center coordinate, a width and height,
and the width and height of the corners. **Circle** has a center
coordinate and a coordinate for the outer edge. Use **Arc** to
circumscribe an arc within a rectangle. Arcs require a start and
end point as well as the degree of rotation (e.g. 130,30 200,100
45,90). Use **Ellipse** to draw a partial ellipse centered at
the given point, specified width and height, and start and end of
arc in degrees (e.g. 100,100 100,150 0,360). Finally,
**polyline** and **polygon** require three or more
coordinates to define its boundaries. Coordinates are integers
separated by an optional comma. For example, to define a circle
centered at 100,100 that extends to 150,150 use:

100,100 150,150

An equivalent format is

+100+100 +150+150

Paths represent an outline of an object which is defined in terms of moveto (set a new current point), lineto (draw a straight line), curveto (draw a curve using a cubic bezier), arc (elliptical or circular arc) and closepath (close the current shape by drawing a line to the last moveto) elements. Compound paths (i.e., a path with subpaths, each consisting of a single moveto followed by one or more line or curve operations) are possible to allow effects such as "donut holes" in objects.

You also have the option of setting the primitive color, line width, x and y translation, degree of rotation, or fill the interior of the primitive.