[css3-images] [css3-values] Inconsistent Angles

We seem to have multiple notions of how angles should work.

There are two commonly-taught methods of mapping angles to directions:
   - the Bearing Angle Method
   - the Cartesian Angle Method
There are other methods of mapping angles to directions:
   - the Graphical Angle Method

Bearing Angle Method:
   - Used for compass bearings
   - Zero degrees points north/up
   - Angles increase clockwise
   - Used by the following properties:
       azimuth (CSS2)
       glyph-orientation (SVG, XSL)
       image-orientation (Paged Media)

Cartesian Angle Method:
   - Determined by arctan(slope) in a Cartesian coordinate system with
       x-values increasing rightwards and y-values increasing upwards
   - Zero degrees points right
   - Angles increase counter-clockwise
   - Used by the following:
       CSS gradient notation (implied by illustrations in CSS3 Images)

Graphical Angle Method
   - Determined by arctan(slope) in a graphics coordinate system with
       x-values increasing rightwards and y-values increasing downwards
   - Zero degrees points right
   - Angles increase clockwise
   - Used implicity by the following:
       Scalable Vector Graphics (SVG)
       CSS 2D Transforms

Of the two that fall under the Graphical Angle method, afaict neither
uses absolute angles -- the zero point doesn't matter, only the clockwise
increase. Which makes SVG and Transforms compatible with the Bearing Angle
Method from a user perspective.

This makes the gradient syntax the odd one out. Therefore its use of angles
should be
   a) defined in the prose somewhere instead of implied by illustration
   b) use the Bearing Angle Method, i.e. 0deg points up and angles increase
      clockwise

Furthermore, the CSS3 Values and Units module should make this convention
explicit so that later spec-writers don't make the same mistake. (Also,
the outdated reference to ACSS and the 0-360 normalization requirement
should be removed.)

~fantasai

Received on Tuesday, 7 September 2010 20:51:20 UTC