- From: Marc Souviron <marc.souviron@gmail.com>
- Date: Sun, 3 Jun 2018 14:50:17 +0200
- To: www-svg@w3.org
- Message-ID: <CAJxkCWD4r9TLsjxqv0z+JYCr3vz-RDLWATDtgZz2YsRjzFSaMw@mail.gmail.com>
Hello, y have a suggestion for SVG2, i am not sure to be on the right list, so in a such case can you indicate me the most appropriate address. The specification extension is as follows. When i use a path with quadratic (or cubic) transformations i can use 't' (or 'c') to specify this kind of curves and 't' (or 's') for smoth curves. The problem is: On sooth curves i cannot choose a smoothness driven by a vector different of the opposite of the previous vector. In a large majority of use case i need to define a smooth transition using a collinear vector to the previous one whith a different modulus . My suggestion is to add two types of curves into pathes: 1 -> 'k' for quadratic curves working as 't' but followed by a real number indicating modulus ratio relatively to previous vector, 2 -> 'p' for cubic curves working as 's' but followed by a real number indicating modulus ratio relatively to previous vector, One of big avantage of this is mainly on quadratic curves cos yo can use this kind of curve very easily to generate smooth shapes with a minimum of points. If you look inkscape implementation on quadartic curve it transforms systematicaly it into cubic. What a pity! My opinion is that this kind of path definition gives a real interest for quadartic curves which are simpler to describe, to store and to compute than cubic curves. On an other hand there is no obvious reason against alternate 'k' an 'p' cos we can extent the previous vector independentely of curve type driven. A cubic cuve can be easily and smoothly prolounged by a quadratic and vice versa. simple example on quadratic curve: <path d="m0,0 q 100,0 100,100 q 0,200 200,200"/> "defined in SVG1.1" <path d="m0,0 q 100,0 100,100 k 2 200,200"/> "suggested for SVG2.0 with same result" <path d="m0,0 q 100,0 100,100 t 200,200"/> "defined in SVG1.1 but incorrect" simple example on cubic curve: <path d="m0,0 q 100,0 100,100 q 0,200 200,200"/> "defined in SVG1.1" <path d="m0,0 q 100,0 100,100 k 2 200,200"/> "suggested for SVG2.0 with same result" <path d="m0,0 q 100,0 100,100 t 200,200"/> "defined in SVG1.1 but incorrect" concrete example drawing "supernova" with quadratic <!-- defined in SVG1.1" --> <path d="m300,300 q 100,0 100,200 q 0,-200 100,-200 q -100,0 -100,-200 q 0,200 -100,200 "/> <!-- suggested for SVG2.0" --> <path d="m 300,300 q 100,0 100,200 k -1 100,-200 k -1 -100,-200 k -1 -100,200 "/> concrete example drawing "pseudosinus wave" with quadratic. <!-- defined in SVG1.1 with absolute coordinates" --> <path d="M100,100 Q 150,150 200,100 Q 300,0 400,100 Q 450,150 500,100 Q 525,75 550,100 "/> <!-- suggested for SVG2.0" with absolute coordinates" --> <path d="M100,100 Q 150,150 200,100 K 2 400,100 K 0.5 500,100 K 0.5 550,100"/> concrete example drawing "kind of lemniscate" with cubic <!-- defined in SVG1.1" --> <path d="m200,200 c150,100 150,-100 0,0 c-75,50 -75,-50 0,0 s 75,-50 0,0 c-150,100 -150,-100 0,0" fill-rule="evenodd"/> <!-- suggested for SVG2.0" --> <path d="m200,200 c150,100 150,-100 0,0 p 0.5 -75,-50 0,0 s 75,-50 0,0 p 2 -150-100 0,0" fill-rule="evenodd"/> concrete example drawing "sunglasses" with cubic <!-- defined in SVG1.1 whith absolute coordinates" --> <path d="M100,100 C0,100 100,250 150,150 C175,100 175,100 200,150 C250,250 350,100 250,100z"/> <!-- suggested for SVG2.0" whith absolute coordinates --> <path d="M100,100 C 0,100 100,250 150,150 P 0.5 175,100 200,150 P 2 350,100 250,100z"/> Thanks a lot. -- Marc Souviron 12 rue Nazareth 31000 Toulouse Tél fixe : 05-61-32-94-50 Tél mobile : 06-72-93-67-88 WEB : http://www.vous-et-nous.com
Received on Monday, 4 June 2018 09:28:13 UTC