W3C home > Mailing lists > Public > www-svg@w3.org > January 2013

Re: fancy lines

From: Brenton Chapin <bzipitidoo@gmail.com>
Date: Wed, 16 Jan 2013 17:25:57 -0600
Message-ID: <CALuXmTA-nc75Eu=9=394RMuqxeny6u-C5mbP8kTJej2EU8mDgg@mail.gmail.com>
To: www-svg@w3.org
Thank you everyone for the responses.  I've been thinking about what I
would find most useful.

That list of lines is great.  Maps are also a good place to look for
examples of lines.  For instance, how should SVG draw a scenic route, with
green dots along one side of a line?  How about a shoreline, represented
with a thick line and a thin line beside it on the water side?  How about a
ruler or a scale, with tick marks on one side of the line?  All these bring
me to a particular lack with current capabilities:  asymmetry.  A double
line can be hacked with the thin line over the thick line trick, but any
kind of asymmetric pattern, such as a wavy or zig-zag line, can't.  I
thought using an even number for stroke-width might cause a rendering with
some asymmetry, and tried it, but it didn't work.  A minimal way to provide
such capability would be a <span dy>, or just a dy attribute, analogous to
<tspan dy>.  Perhaps a "stroke-offset-y", similar to the
"stroke-dashoffset"?  This would allow many more creative hacks to get
around the limitations, but the problem is you'd still be making hacks.

The <replicate> idea looks like <animate> adapted for repetition instead of
animation.  It's animation without erasing.  I like reuse of concepts, but
have doubts about this one.

Markers are great for exactly that:  markers.  But how would it help with
something like the shoreline?  Hack a marker that is actually just a short
parallel line on one side, then pack the markers in so thickly that the
short parallel lines all touch.

What I feel I like best is some kind of "orient=auto" for patterns, same as
markers have now.

* * *

I have another concern with lines:  loops.  Or, more generally, reuse of
points.  For example, to represent intersecting highways, have to restate
the x,y coordinate in some fashion for each line.  Seems there should be a
way to reuse points.  If not a <point> tag, how about a <circle id="pointA"
r="0"> workaround?  Then, allow something like "<path d="M 99 49 L 99 99
url(#pointA) 49 49" /> .  Could also have that work in the obvious way with
a relative command.  Perhaps for that, should call the tag <vector> instead
of <point>.

Even more generally, why doesn't SVG better support all sorts of reuse?
Why not support some sort of recursion?  Is it fear of what browser
performance killing mistakes that might allow?  Or fear that recursion
would be hard to implement, in particular, hard to decide when to cut off
infinite recursion?  The SVG of the Sierpinski Triangle on Wikipedia is
clever, and almost is recursion.  Why not go one more step?  For fancy
lines, it would make things like the Koch curve easier.

-- 
http://brentonchapin.dyndns.info
Received on Wednesday, 16 January 2013 23:26:29 GMT

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