[whatwg] Stroking algorithm in Canvas 2d
ian at hixie.ch
Fri Sep 27 15:35:35 PDT 2013
On Mon, 9 Sep 2013, Rik Cabanier wrote:
> On Mon, Sep 9, 2013 at 9:33 AM, Ian Hickson <ian at hixie.ch> wrote:
> > On Thu, 5 Sep 2013, Rik Cabanier wrote:
> > >
> > > we've looked over the algorithm in the Canvas spec that describes
> > > how strokes are computed.  We think that this section is making
> > > some incorrect assumptions. For instance, the dashes are calculated
> > > over the total lenght of all subpaths, but each subpath should be
> > > treated separately.
> > That's intentional, otherwise if you stroke an already-dashed line,
> > you get weird results.
> As Stephan said, when would this happen? Are you thinking of a case
> where you did the dashing yourself and then dash/stroke it again? If so,
> that is expected to give different results.
Expected by whom?
The idea here is that this line:
...would result in this dash (assuming equally spaced on-off):
--- --- --- --- ---
...while this line, dashed with the same stroke:
--- --- --- --- ---
...would result in this different line, rather than result in no change:
--- --- ---
...and this line, dashed with the same stroke:
-- -- -- -- -- -- -- --
...would result in something more like:
-- - -- - -- -
...rather than, again, resulting in no change.
> > > It's also a bit strange that the spec is trying to describe how to
> > > stroke.
> > It's trying to describe sufficient detail to get interoperable
> > behaviour.
> > > For instance, it goes in minute detail on how dashes are applied but
> > > the hardest part of stroking ("inflating the paths in path
> > > perpendicular to the direction") is not described at all.
> > Is there any ambiguity in the part that's not described?
> Yes. What is "inflating"?
The dictionary definition is what I intended. To grow, increase in size,
get bigger in all directions. Inflate.
If you have any better suggestion for how to word this, I'm all for it.
> A stroked bezier curve is no longer a bezier and has to be calculated.
Yes. The idea of defining it in terms of the earlier path is that there's
no need to be explicit about the maths here.
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg