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

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