Re: stroke-linecap on zero length subpaths

On Tue, 18 Jan 2011 23:51:38 +0100, Cameron McCormack <>  

> One of the changes we made in SVG 1.1F2 was to make zero length subpaths
> paint their linecaps if stroke-linecap is round or square (previously it
> was just for round).  So in painting.html we have:
>   A subpath (see Paths) consisting of a single moveto shall not be
>   stroked. Any zero length subpath shall not be stroked if the
>   ‘stroke-linecap’ property has a value of butt but shall be stroked if
>   the ‘stroke-linecap’ property has a value of round or square,
>   producing respectively a circle or a square centered at the given
>   point. Examples of zero length subpaths include 'M 10,10 L 10,10',
>   'M 20,20 h 0', 'M 30,30 z' and 'M 40,40 c 0,0 0,0 0,0'.
> But in implnote.html we have:
>   If ‘stroke-linecap’ is set to butt and the given path segment has zero
>   length, do not draw the linecap for that segment; however, do draw the
>   linecap for zero-length path segments when ‘stroke-linecap’ is set to
>   either round or square. (This allows round and square dots to be drawn
>   on the canvas.)
> This should be talking about zero length subpaths rather than zero
> length path segments; we don’t want 'M 10,10 h 0 h 0' to draw more than
> one pair of linecaps.  It’s also redundant with the requirements in
> painting.html.  
> So I suggest that we either replace it with:
>   As mentioned in _Stroke Properties_[painting.html#StrokeProperties],
>   linecaps must be painted for zero length subpaths when
>   ‘stroke-linecap’ has a value of round or square.
> or remove it altogether.

I prefer the suggested replacement text over removing it.

Erik Dahlstrom, Core Technology Developer, Opera Software
Co-Chair, W3C SVG Working Group
Personal blog:

Received on Wednesday, 19 January 2011 07:44:37 UTC