The Dasher class takes a series of linear commands
(moveTo, lineTo, close and
end) and breaks them into smaller segments according to a
dash pattern array and a starting dash phase.
Issues: in J2Se, a zero length dash segment as drawn as a very
short dash, whereas Pisces does not draw anything.
The Flattener class rewrites a general path, which
may include curved segments, into one containing only linear
segments suitable for sending to a LineSink.
The LineSink interface accepts a series of line
drawing commands: moveTo, lineTo,
close (equivalent to a lineTo command
with an argument equal to the argument of the last
moveTo command), and end.