Re: [svgwg] Rect decomposition is invalid (#753)

I came across it because I was implementing it and despite the reading between the lines I am actually unsure whether that is correct. The current decomposition clearly likes the closing z-paths since they prevent the additional markers of a zero length line. However with your decomposition the path of a Rect(x=0, y=0, w=1, h=1) is "M 0,0 H 1 V 1 H 0 V 0 z" and that is what my implementation gives you. 

    >>> from svg.elements import *
    >>> Rect().d()
    'M 0,0 H 1 V 1 H 0 V 0 z'

However, there's a clear argument for Rect().d() = 'M 0,0 H 1 V 1 H 0 z'. As that likewise prevents the additional marker as well. Since it removes a zero distance line that your decomposition there would expressly demand.

I'm not going to bet against closing path z commands at this point. Though I do admit they might be a little less ambiguous if Z did not permit zero length closing paths. If the points are coincident then the close should be a no-op. So you'd have to express that as `v0z` if you wanted to explicitly say you have a zero length line then a close since z would no-op at that point. Then closing-path-z would just be a shorthand.



-- 
GitHub Notification of comment by tatarize
Please view or discuss this issue at https://github.com/w3c/svgwg/issues/753#issuecomment-557568952 using your GitHub account

Received on Friday, 22 November 2019 15:12:08 UTC