W3C home > Mailing lists > Public > www-style@w3.org > November 2010

Re: [css3-2d-transforms] Interop: matrix() values e,f <number> or <length>

From: Chris Marrin <cmarrin@apple.com>
Date: Thu, 18 Nov 2010 06:50:50 -0800
Message-id: <5FC8C552-F527-4451-89F3-043D2B9DDFB1@apple.com>
To: www-style list <www-style@w3.org>

On Nov 17, 2010, at 6:18 PM, Boris Zbarsky wrote:

> On 11/17/10 8:32 PM, Brendan Kenny wrote:
>> I just mean the matrix is a manipulation of a space, which must have
>> units because you are specifying points to be transformed using them.
> 
> Why?
> 
> In particular, thinking of affine transforms as operations on P^2 involves thinking of your 2-element vectors as vectors in homogeneous coordinates.  The particular way you do that defines what your matrix means, right?

I agree that the matrix() should be unitless, and not because of its mathematical "correctness". I just think it is confusing to authors to require units in 2 parameters and not the others. Think about matrix() for 3D transforms. There you pass 16 numbers. Parameters m41, m42 and m43 typically represent the translation of the coordinates. Should those 3 parameters be required to have units, but the other 13 are required to have no units? That's very confusing.

If you're using matrix() you're doing some (possibly very complex) math, so you should provide no units. If you simply want to translate, then you should use translate() which does require units.

-----
~Chris
cmarrin@apple.com
Received on Thursday, 18 November 2010 14:51:24 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:34 GMT