W3C home > Mailing lists > Public > www-svg@w3.org > August 2006

Re: SVG Tiny 1.2 CR2006-08-10: 9.2 rect element with rounded corners

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Mon, 28 Aug 2006 17:57:28 +0200
To: www-svg@w3.org
Message-Id: <200608281757.29257.Dr.O.Hoffmann@gmx.de>


now I discovered something much more important about this.
The described behaviour is different from that of SVG (Tiny)
1.1. Such backwards incompatibility is quite useless and annoying.
In SVG 1.1 it starts at (x+rx,y), in the SVG Tiny 1.2 CR at (x,y+ry),
this is something to trip up implementors of both
specifications and to annoy authors with unpredictable
behaviour again. It is much more important to correct
inconsistencies like these as just some wording. 

If a reference to the full profile has to be avoided, something
like the following is needed. I think, it is better understandable,
if confusion about 'commands', 'operation', 'moveto'. 'lineto' is avoided
in this section. It is just a description of the shape, no path data anymore.
Something like this fits better to the style of the descriptions of the 
circle and the ellipse elements too, avoiding suggestive non existing
semactics from path data:

A 'rect' element, taking its rounded corners into account, must be rendered 
in a way that produces the following outline:
(Note: all coordinate and length values are first converted into user space 
coordinates according to Units.)

- Begin at the point (x+rx,y), where x and y are the values of the 'rect' 
element's x and y attribute converted to user space, and rx and ry are the 
effective values of the rx and ry attributes converted to user space.

- Continue with a horizontal line to location (x+width-rx,y), where 
width is the 'rect' element's width attribute converted to user space.

- Add an elliptical arc to coordinate (x+width,y+ry) 
 (see example images below about the alignment of the elliptical arcs).

- Continue with a vertical line to location (x+width,y+height-ry), 
where height is the 'rect' element's height attribute converted to user space

- Add an elliptical arc to coordinate (x+width-rx,y+height)

- Continue with an absolute horizontal line to location (x+rx,y+height)

- Add an absolute elliptical arc to coordinate (x,y+height-ry)

- Proceed with a vertical line to (x,y+ry)

- Close the outline with an elliptical arc back to coordinate (x+rx,y).

In case the rx and ry attributes are not specified or set to a value of zero, 
the elliptical arcs should be omitted.

Best wishes
Received on Monday, 28 August 2006 15:54:08 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:54:14 UTC