- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Wed, 08 Sep 2010 21:10:54 -0400
- To: Chris Marrin <cmarrin@apple.com>
- CC: "www-style@w3.org list" <www-style@w3.org>
On 9/8/10 8:52 PM, Chris Marrin wrote: > We should also make the order of parameters passed to matrix3d() clear. I don't think it is clear currently. The spec pretty clearly says: matrix3d(<number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>, <number>) specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order. I don't know what's unclear about that, unless the reader doesn't know what column-major order is. On the other hand, I suppose one could argue that this definition is pretty jargon-heavy, between that and the "homogeneous matrix" bit. What the spec does NOT define, on the other hand, is what transformation this matrix represents. For example, nowhere does it say that such a matrix transforms the point (x, y, z) to (x', y', z') by taking the column vector (x, y, z, 1) and left-multiplying by the given transformation matrix, then taking the first three coordinates of the resulting vector in order. At least this is what I assume it means to do. If it were doing right-multiplication on row vectors, then the same transformation would, of course, be represented by the same numbers but now in row-major order.... -Boris
Received on Thursday, 9 September 2010 01:11:27 UTC