- From: Jonathan Watt <jwatt@jwatt.org>
- Date: Thu, 05 Mar 2009 13:02:06 +0100
- To: public-svg-wg@w3.org
On 2/25/09 5:37 AM, Cameron McCormack wrote:
> Erik Dahlstrom:
>> I was given ACTION-2367 to propose wording for clarifying the handling
>> of rx and ry on rect elements[2].
> …
>> I propose to change that to the following algorithm (in pseudocode):
>>
>> if(rx)
>> clamp(rx, width/2)
>>
>> if(ry)
>> clamp(ry, height/2)
>>
>> if(rx && !ry) {
>> ry = rx;
>> clamp(ry, height/2);
>> }
>>
>> if(!rx && ry) {
>> rx = ry;
>> clamp(ry, width/2);
>> }
>
> I don’t have an opinion on whether clamping should happen in this order
> or such that the two clamp() calls happen just before the assignment
> statements they follow.
>
> I’ll just briefly note though that the CSS3 Borders and Backgrounds
> module defines clamping of box boder radii in a different way:
>
> http://dev.w3.org/csswg/css3-background/#the-border-radius
>
> which is basically to reduce all four corner radii uniformly until they
> fit, IIUC.
I've not looked at the CSS text yet, but that sounds like what Mozilla does. Our
algorithm is similar to the one proposed by Eric, but instead of:
if(rx && !ry) {
ry = rx;
clamp(ry, height/2);
}
we essentially do:
if(rx && !ry) {
ry = rx = clamp(rx, height/2);
}
(Yes, clamping *x* based on *height*.) In essence we put a higher priority on
keeping the used rx and ry values the same if only one was specified.
Regardless of what Mozilla does, I think we should try to be consistent with CSS
here.
Jonathan
Received on Thursday, 5 March 2009 12:02:45 UTC