RE: [SVG 2] bearing path command and simple drawing of objects with discrete rotation symmetry

Hi Cameron,

I think it's a pretty neat idea to allow bearing settings amidst path syntax. It makes it more like the good old turtle graphics from Logo that so many now middle aged youngsters once used.

I know that the WG had previously rejected some ideas of having angular settings together with repetitional boundaries so that, for example one could draw something like

" M 100 100 R8 (b 45 h 20 ) " to draw an eight pointed star, by repeating the stuff inside the boundaries to be repeated eight times. 

The reaction at the time was that it would introduce microsyntax into path; yeah, but it would allow for really expressive code, and even things like fractals, without cluttering the DOM, the way <replicate> might (without fancy footwork in the realm of supershadowDOM), and given that resistance against angular constructs has worn down, maybe folks are ready for the next step?


-----Original Message-----
From: Cameron McCormack [] 
Sent: Thursday, February 13, 2014 12:15 AM
To: Dr. Olaf Hoffmann
Subject: Re: [SVG 2] bearing path command and simple drawing of objects with discrete rotation symmetry

Hi Olaf,

Dr. Olaf Hoffmann wrote:
> In detail: Alternatively to a number representing an angle in degree, 
> it would be useful to be able to note number1/number2.
> This expression represents a fraction of a full turn.
> In case number2 is accidently noted as 0, one can define 0 degree as 
> rotation.
> Advantages:
> a) Authors do not have to calculate the approximate angle in degrees 
> and do not have to bother about residuals from rounding this number.
> b) This gives more accurate (semantical) information about the 
> intended shape than rounded numbers, therefore it is simpler to 
> identify the intented meaning or purpose of a shape.

You're right there would be an advantage to allowing fractions in here for values like 1/7.  On the other hand we don't allow numbers to be expressed like this anywhere else in SVG.

For stars, pie charts, etc., which are the kinds of things that I'm thinking the bearing commands will be used for, fractions of the form 1/n would be appropriate.  I wonder though whether people would want to have more complex expressions, like "0.5 + 1/7".  (Of course they can just compute that to "8/14".)

People have previously asked to be able to use CSS length values in the middle of path data strings, and <polygon> points attributes.  Although we hadn't planned on doing that right now, as it's quite a change, it would let you do fractions using calc().

I think if we allowed fraction values, implementations wouldn't necessarily perform their path/bearing calculations using fraction values but instead still work with floating point.

Received on Thursday, 13 February 2014 18:25:31 UTC