Re: The trouble with matrix multiplication « code monk

On Wednesday, November 21, 2007, 11:51:36 AM, Karl wrote:

KD> For Information

KD>      The trouble with matrix multiplication
KD> 2007-11-19

KD> is that it?s not commutative. That means that when the SVG spec says  
KD> in the documentation for the multiply method in the SVGMatrix DOM  
KD> ?this matrix is post-multiplied by another matrix? it really does  
KD> matter which way round you do the multiplication of the two matrices.

Yes, it does matter (scale and then shift is not the same as shift and then scale). 
http://en.wikipedia.org/wiki/Matrix_multiplication

However, I don't read the commenter as complaining, but praising the SVG spec for specifying which way round the multiplication goes.

That is why instead of saying just "multiplied" we say "pre-multiplied" or "post-multiplied" as appropriate.

KD> In the call «A.multiply(B)», A is this and should be post-multiplied  
KD> by B. In the usual mathematical convention the result should be AB.

KD> Safari computes BA, Firefox computes AB. Oopsy.

I find it surprising that the Safari DOM call does pre-multiply; they seem to have the rest of the transformations correct when SVG code has nested transformations. However its listed as a known bug
http://bugs.webkit.org/show_bug.cgi?id=16062

 
The comments on that bug indicate that the issue arose because of two mathematical notations for writing matrices - row vectors and column vectors. They seem to have worked out what went wrong and what to change so that the library they are using gets called correctly.


KD>      -- The trouble with matrix multiplication « code monk
KD>     
KD> http://drj11.wordpress.com/2007/11/19/the-trouble-with-matrix-multiplication/
KD>      Wed, 21 Nov 2007 10:50:19 GMT


-- 
 Chris Lilley                    mailto:chris@w3.org
 Interaction Domain Leader
 Co-Chair, W3C SVG Working Group
 W3C Graphics Activity Lead
 Co-Chair, W3C Hypertext CG

Received on Thursday, 29 November 2007 22:39:36 UTC