Re: Markers and all

On 6/21/05, Maxim Shemanarev <mcseem@antigrain.com> wrote:
> Problem 1.
> It's impossible to draw the marker with the same color as the stroke.

This is a VERY serious problems for the users of Inkscape. It's been
complained about a lot of times. The corresponding bug

https://sourceforge.net/tracker/index.php?func=detail&aid=995815&group_id=93438&atid=604306

even has a grassroots bounty campaign going on. We do have a plan of
how to emulate the intuitively expected behavior with current SVG
capabilities (see my comment in that bug), but it's quite cumbersome,
and no one started working on it yet. If SVG provides a more
straightforward solution it would be great.

> Problem 3
> 
> The "marker-mid" is useles.

Well, it's not often used indeed, but it's better to have it than not.
I know of some cases where it is useful. Besides, in a vector editor
you can freely add, and in some cases even remove, nodes on the path
without distoring the shape, which gives you some degree of control on
the placement of mid-markers. A simple example is this screenshot:

http://inkscape.org/screenshots/gallery/inkscape-0.39-CVS-linux-markers-01.png

where each "chain" of markers are done simply by multiplying the nodes
on a line.

> Problem 4
> 
> Markers in practice are mostly arrowheads. And I would like lines with
> arrows to point exactly to the ending coordinates.

Yes, this is another problem that the users of Inkscape often report.
We've had workaround proposals but all they are limited. For example
we considered to create a variant of our standard marker set where the
tip of marker coincides with the tip of the path, but the marker
contains a small white "screen" under its tip which covers the tip of
the path. Of course this would only work for non-transparent paths
over white background.

> I suggest to change markers' behaviour in the following way:
> 
> 1. Markers just add a vector path to the stroke and they are always rendered
> with the current stroke color/gradient/pattern. All color, stroke, and
> opacity properties in the marker definition are ignored.

Well, I can imagine lots of uses for markers using paint and opacity
of their own, as well as for markers containing several parts with
different styles. For example, this proposal would make it impossible
to use the "white screen" workaround for the Problem 4 above. So I
don't think I would support such a drastic change.

Instead, I would propose another solution which is even somewhat
backwards-compatible:

a. Change the inheritance rule for markers in such a way that each
instance of a marker inherits style from the path to which it is
attached.

b. Additionally, make the fill and fill-opacity properties for marker
inherit from stroke and stroke-opacity of its path.

With these provisions, markers which have their own style will work as
before. However you can make them take style from the path simply by
removing the style of their own, so it becomes inherited. With this,
it will still be possible to have complex markers where some objects
(without their own style) take the style of the path, while other
objects have their own style and therefore do not change when applied.

> 2. "marker-mid" is always rendered in the middle of the path, but not in
> every vertex of it.

I strongly object to this. Just one mid-marker? Sounds pretty useless.
The current system is not ideal, but at least it's more flexible and
powerful than this.

> 3. Add "shortenPathStart" and "shortenPathEnd" properties to the marker.

This might be a good idea.

-- 
bulia byak
Inkscape. Draw Freely.
http://www.inkscape.org

Received on Monday, 27 June 2005 22:09:26 UTC