Re: stroke-miterlimit: Why not use partial miters when a stroke linejoin exceeds the limit?

Hello,

some additional new behaviour concerning stroke-miterlimit sounds interesting.
To ensure backwards compatibility however this requires a new property to
switch between different behaviour.
It would be especially interesting to be able to apply an arc type (maybe
quadratic or cubic curves) of finite length to joins with an angle of 0 or
in general for small angles.
The proposed arc type seems to be not applicable to ensure, that
the join results always in a tip, if one wants it.
Currently one typically has to avoid small angles, if one does not
want the fallback to bevel for parts of a more complex path.
This can be avoided with some join curve modifications,
if the miterlimit is exceeded, but requires an additional property to 
switch between different behaviours.


Concerning how to apply stroke-miterlimit to an 'arc' join - there is no
precise (mathematical) description I found, how to extrapolate the outline
of the joining path segments to get such a line-join - I think, this is 
required to get this effect implemented.
The mathematical description of the borders of a curved stroke is
not always a curve type expressable with SVG path segments,
therefore maybe not easy as well to get the description of this arc join
right, implicating difficulties in defining the meaning of stroke-miterlimit.
For the other joins it is related to the length of the straight centerline of 
the join, therefore it would be straight forward to use some path length
algorithm to get the corresponding length along the curved centerline of a 
join for the arc case. 

To get some defined behaviour for the arc type, one may determine
the directionalities of the stroke outline at the joining area and use
this to get quadratic or cubic curves for the join extrapolation.
For a tip at miterlimit length one only needs to modify such curves
slightly.




Olaf

Received on Monday, 20 October 2014 12:30:46 UTC