- From: Rik Cabanier <cabanier@gmail.com>
- Date: Fri, 18 Apr 2014 11:50:24 -0700
- To: "Dr. Olaf Hoffmann" <Dr.O.Hoffmann@gmx.de>
- Cc: www-svg <www-svg@w3.org>
- Message-ID: <CAGN7qDB1zZ+n8VuCHbAjymyV=T4x3uGniebq9V4yd45ejRWc_w@mail.gmail.com>
On Fri, Apr 18, 2014 at 5:32 AM, Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>wrote: > Rik Cabanier: > > >When a dash is of length 0, its end caps are supposed to be drawn along > the > >direction of the original path. > >Maybe what the SVG spec should do is: > >- defined the concept of an original subpath which is the path before it > is > >divided into subpaths before the dash array is defined > >- update the section that describes drawing the end caps so it refers to > >this new concept. > >ie > > > >its longer edges, A and B, are parallel to the line perpendicular to the > >*original* subpath at distance position along it. > > You should not mixup the concept of a subpath (fragment of the value > of the path d attribute starting with a command M/m) and dashes and > gaps of the stroke-dasharray property. > I think, because several people mix this up, the feature stroke-dasharray > is often corrupted in several implementations somehow, leaking already > into the SVG 2 draft at some points. > stroke-dasharray is no method to create new subpaths, it is only a method > to provide a pattern for a stroke. > I reread the algorithm [1] and you are right that it does not divide the path into pieces (I was confused with canvas which does do that) It also defines what happens with 0 length dashes since they are aligned with the original path. I withdraw my earlier proposal > SVG defines the direction of subpath of length zero in the implementation > notes. Therefore even for them there should be always a direction for the > stroke-dasharray as well. > If only a dash or gap has length zero, this has no influence on the > direction > of the path it belongs to, therefore no problem to align it. > > More problematic, but somehow related to the problem, that dashes are > mixed up with subpaths is, that there seems to be still no feature to > control > the 'caps' of such dashes or gaps in the SVG 2 draft as promised in > SVG 1.1.2 and SVG tiny 1.2, this is annoying for authors really wanting > to use stroke-dasharray as a pattern along the stroke. > This is strongly related to the problem, that it is often of limited or no > use, that the caps from stroke-linecap are applied to dashes at all, > especially if the stroke-width is larger than the dash or gap length. > The current behaviour to always apply the stroke-linecap to dashes > is a serious limitation of the usefulness of stroke-dasharray at all. > Can you point to an example what you are trying to achieve? I had a proposal for border brushes that might be what you are looking for. > Another problematic issue with the current draft text: > 'The resulting even-length dashing pattern is repeated along each subpath. > The > dashing pattern is reset and begins again at the start of each subpath.' > This is in conflict with the definition of M/m commands and causes problems > and a lot of work for animations of the property (one has to devide paths > with > subpaths into single paths, determine the length of such paths to be able > to > define a cascade of animations with the correct timing to animate > stroke-dasharry as intended, following the definition of the M/m command). > There should be an additional property to control this, in case it is > useful > for some people at all to restart the pattern with each subpath - does this > really have use cases or is this addition only added to describe current > implementation bugs? ;o) > Are you saying that given a path consisting of sub-paths, the dash phases of the subpaths should adjust so the dashing is contiguous? > At least obviously this simplifies the situation for subpaths of zero > length > and dashes or gaps of zero length, one always has to care about the > beginning of the pattern and can forget about the rest ;o) > 1: https://svgwg.org/svg2-draft/painting.html#TermStrokeShape
Received on Friday, 18 April 2014 18:50:53 UTC