Re: [SVGF1.12 LC] marker direction if average direction is zero?

From: Jasper van de Gronde <th.v.d.gronde@hccnet.nl>
Date: Wed, 06 Oct 2010 12:45:06 +0200
Message-ID: <4CAC5332.8000205@hccnet.nl>
To: "Dr. Olaf Hoffmann" <Dr.O.Hoffmann@gmx.de>

```On 2010-10-06 12:22, Dr. Olaf Hoffmann wrote:
> ...
> About a meaningful defintion for future versions:
>
>
> Jasper van de Gronde:
>
>> Note that it's not as undefined as declaring it simply "undefined" would
>> suggest. Actually, with the current wording renderers would always have
>> two (and ONLY two) choices, as the bisector is technically a line,
>> giving rise to two possible vectors. It's just that normally it's
>> obvious that the vector corresponding to the smaller angle should be
>> chosen. In the case of two opposite tangent vectors it's just that there
>> isn't a smaller angle.
> ...
>
> If we assume that an author uses such a marker typically to indicate
> something like the progression direction of the path, due to all of my
> examples it would be useful to align the marker direction in such a case
> perpendicular to the two tangents. This corresponds to a limes
> of the bisector angle going to zero.
>
> The main problem seems to be the orientation.
> If the subpath/path fragment before and after this degenerate
> point have a direction, this can be used to determine the orientation
> of the marker from a non local 'before' to a non local 'after' or maybe
> from higher order derivatives (L'Hospital? Did not test, if this is
> usable here).

L'HÃ´pital's rule is indeed useable (at least for Beziers, but I guess
the same will hold for other curves). And (if you apply a rotation as I
described before) it basically leads to determining the sign of the sum
of two coefficients in the Taylor expansions of the x derivatives of the
curves around the corner (the first two for which the sum is non-zero).
This is particularly easy for Bezier's and such, but also shouldn't be
too hard for elliptical arcs.

> In the degenerate case of two reverse straight lines there is
> no such information remaining.
> For example (b)
> M0,0 200,200 0,0 -200,-200z
> ...
> Another problematic sample (c):
> M-100,-100C-50,-50 0,0 200,-200C-50,50 -50,-50 -100,-100z

This basically results in all coefficients being opposites and is
therefore the same as b for the purposes of the procedure suggested
above (no coefficients can be found for which the sum is non-zero).
```
Received on Wednesday, 6 October 2010 10:45:35 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 March 2017 09:47:22 UTC