W3C home > Mailing lists > Public > www-svg@w3.org > June 2012

Re: marker improvements

From: Cyril Concolato <cyril.concolato@telecom-paristech.fr>
Date: Fri, 01 Jun 2012 09:26:41 +0200
Message-ID: <4FC86EB1.7040209@telecom-paristech.fr>
To: Cameron McCormack <cam@mcc.id.au>
CC: SVG public list <www-svg@w3.org>
Hi Cameron,

Some additional comments. This is my first real reading of the marker 
section, so some of my comments might be not-acceptable given the legacy 
1.1 behavior.

* In the first sentence of 11.6: "A marker is a symbol ...". I think we 
could change the word 'symbol' (to something like 'graphics') as this is 
not necessarily refering to a <symbol> element. This is confusing.

* I don't understand ISSUE 2. What do you mean by "setting back" ?

* In the marker-segment definition, you say that a marker is added to 
non-zero length path segment. It's creating a special case for 
zero-length segment. This can produce a weird effect when animating a 
path segment when the length goes from non-zero to zero to non-zero, 
where the marker would disappear (blink). I don't know how frequent this 
case would be though.

* The description of marker-mid still says 'or at the center of every 
path segment'. Is this normal?

* When giving the drawing order between all types of marker "Markers on 
a given element are painted in the following order:", it is not clear 
which type is on top. It would clearer to say that the painter's 
algorithm is used or to say that they are "painted on top of each other 
in the following order".

* "... marker is to be fitted when it is rendered ... ": It should 
probably say 'fitted according to the viewBox and preserveAspectRatio 
attributes'.

* "the reference point of the marker which is to be aligned": it's weird 
to say 'aligned' for a point. I'd say 'positioned'.

* "orient": It is not clear from this section if the rotation performed 
before the fitting or after? It is clearer looking at 11.6.7. You might 
want to put a link to that section.

* What is the incoming and outgoing direction for the center of a path 
segment? How can they be different?

* It's probably worth starting a new line for "If the marker is on the 
first or last vertex".

* For ISSUE-4, we could also say that the position is computed modulo 
the path length.

* about href: I thought the resolution was to keep both xlink:href and 
href and say that href has precedence (see 
http://www.w3.org/Graphics/SVG/WG/wiki/SVG2_Resolutions#Drop_xlink_prefix_for_href).

* "Properties inherit into the ‘marker’ element from its ancestors; 
properties do not inherit from the element referencing the ‘marker’ 
element.": I think it should be the opposite. In terms of 
implementation, I think it is easier. In terms of authoring, if you 
don't want inheritance to apply, specify non-inherit values on the element.

* ISSUE-7: why do you want to special case the positioned marker?

* Figure 9: I don't see the circle and cross markers in the image. Is 
this normal?

* What does " <funciri> values made absolute" ? absolute as "base URL + 
path in the document" ? Shouldn't we that IRI are transformed into IRI 
relative to the root element?

* pattern:
You wouldn't allow marker-pattern="#marker1 10px none 20px #marker2" ?
I know you can write marker-pattern="#marker1 30px #marker2"
but it might be useful for animation of the second marker:
marker-pattern="#marker1 10px #newmarker 20px #marker2"
Actually, you can already do that by putting an invalid marker reference 
but I think it's better to put none.

"If a value other than none is given, and the sum of the <length>s and 
<percentage>s is not positive, then it is an invalid value."
Why not say that the lengths and percentages shall all be positive? You 
want to allow going backwards in the positioning of the markers? Do you 
have an example?

* "[ none | <funciri> ]{4} / <‘marker-pattern’>" you probably want to 
write {1,4}.

* The initial value of the marker-knockout properties is defined as 
none, but this is not an allowed value. What does it mean?

* Figure 14: The fact that you changed both the paint order and the 
stroke width is confusing I think. It does not show the effect of the 
paint order only.

That's it for now.

Cyril


----- Mail original -----
De: "Cameron McCormack" <cam@mcc.id.au>
À: "SVG public list" <www-svg@w3.org>
Envoyé: Samedi 26 Mai 2012 09:26:54
Objet: marker improvements

I've added some of the marker improvement proposals that we discussed 
recently to the spec, although I have changed them a bit.  Instead of 
extending marker-mid to allow specifying a pattern of markers to place 
along the path, not at vertices, I added a separate property for this. I 
also added a separate property for markers at the centre of path 
segments.  marker-start, marker-mid and marker-end remain unchanged.

marker-segment:

    https://svgwg.org/svg2-draft/painting.html#SegmentMarkers

marker-pattern:

    https://svgwg.org/svg2-draft/painting.html#RepeatingMarkers

The expanded marker shorthand that allows setting marker-{start,mid,
end,segment,pattern} at once, with different values:

    https://svgwg.org/svg2-draft/painting.html#RepeatingMarkers

There's some updated text at the start of the section with an overview 
of the different types of markers:

    https://svgwg.org/svg2-draft/painting.html#Markers

I extended the <marker> element like we discussed to allow it as a child 
of a <path> etc. element.  That's a "positioned marker".


For setting back the stroke to allow better arrowheads, and to have say 
circular hollow markers without the stroke showing through, I added a 
half baked proposal to stimulate some discussion:

    https://svgwg.org/svg2-draft/painting.html#MarkerKnockout

Look at the image for an overview without having to read all that dense 
text in there.

I went a bit crazy on the shapes, perhaps, but the key thing I was 
trying to avoid was allowing a generic path to be specified, since that 
would require some difficult intersection checking.  At least with these 
predefined shapes the number of edges to check for intersections is low 
and known.

But as I mention in the ISSUE in that section, using this feature for 
some cooler looking dash patterns (dashes looking like chevrons for 
example) you probably want to put the two sides of the shape at 
different orientations along the path, and that again requires more 
difficult shape/intersection calculations.

Anyway, comments welcome.
Received on Friday, 1 June 2012 07:27:43 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:51 GMT