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

On Wed, Nov 17, 2010 at 5:09 PM, L. David Baron <dbaron@dbaron.org> wrote:
> On Wednesday 2010-11-17 17:03 -0800, Brendan Kenny wrote:
>> On Wed, Nov 17, 2010 at 3:36 PM, L. David Baron <dbaron@dbaron.org> wrote:
>> > On Wednesday 2010-11-17 22:31 +0000, Sylvain Galineau wrote:
>> >> The current CSS3 2D Transforms spec [1] defines the matrix function as taking six
>> >> values of type <number>.
>> >>
>> >> Firefox 4 Beta 7, however, seems to require e and f to be of type <length>. As
>> >> these map to the x and y of the translate*() functions, I can understand the
>> >> connection. This is, however, the only implementation to do this today.
>> >>
>> >> I was curious to know whether this was by design.
>> >
>> > It was.  I proposed changing the spec here:
>> > http://lists.w3.org/Archives/Public/www-style/2009Oct/0360.html
>> > and got no response.
>> >
>>
>> That of course makes sense for the translate function, but I find it
>> confusing in the matrix function. Thinking of 2d translations as
>> shears in 3d space (or P2), the units are already implicit in the
>> space, making the units on e and f into just additional multipliers.
>
> The units are implicit in the space according to what?  As far as I
> know, CSS doesn't define pixels as more basic than other units.
> Those components of the matrix really do have different dimensions.

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.

As I said though, it's also typical to think of an affine transform as

(linear transform)*point + (translation vector)

in which case the translation vector has to have units. I just think
that if an author is using the matrix function (instead of the
translate function), they are more likely thinking in the former way,
not the latter.

Received on Thursday, 18 November 2010 01:33:26 UTC