On May 9, 2007, at 22:51, Philip Taylor wrote:
The common graphics APIs (at least Cairo, Quartz and java.awt.Graphics, and any SVG implementation) all have dashes specified by passing an array of dash lengths (alternating on/off), so that should be alright as long as you define what units it's measured in and what happens when you specify an odd number of values and how errors are handled and what happens if you update the array later.
Naïvely, one might expect the right answer to be "Do whatever Adobe's PostScript implementation does."
Has anyone tested if the expected <canvas> back end libraries (Quartz 2D, Cairo, whatever they call the 2D stuff under WPF, Java 2D) follow PostScript faithfully in the case of dashed strokes?
But after that, what does it do when stroking multiple subpaths, in terms of offsetting the dashes?
"Each subpath of a path is treated independently; the dash pattern is restarted and the offset reapplied at the beginning of each subpath." – PostScript Language Reference, 3rd ed. p. 667
How does it interact with lineCap/lineJoin?
"Dashed strokes wrap around curves and corners in the same way as solid strokes. The ends of each dash are treated with the current line cap, and corners within a dash are treated with the current line join." – PostScript Language Reference, 3rd ed. p. 666
-- Henri Sivonen [EMAIL PROTECTED] http://hsivonen.iki.fi/
