[fxtf-drafts] [css-geometry] Transforming a point with a matrix has things backwards somewhere (#359)

bzbarsky has just created a new issue for https://github.com/w3c/fxtf-drafts:

== [css-geometry] Transforming a point with a matrix has things backwards somewhere ==
https://drafts.fxtf.org/geometry/#transform-a-point-with-a-matrix says:

5. Let pointVector be a new column vector with the elements being x, y, z, and w, respectively.
6. Set pointVector to pointVector post-multiplied by matrix.

Where "post-multiplied" links to https://drafts.fxtf.org/geometry/#post-multiply which says:

> Term A post-multiplied by term B is equal to A ยท B.

So this is doing `v * M` where `v` is a length-4 column vector and `M` is a 4x4 matrix.  That's not a legal multiplication: the sizes don't match, right?

Does this algorithm mean to do `M * v` (so s/post-multiplied/pre-multiplied/ or switching the order of args to "post-multiplied" around) or does this algorithm mean to have `v` be a _row_ vector?

Looking at what implementations do here, it looks to me like Blink does `M * v`.  So does Gecko, as far as I can tell.



Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/359 using your GitHub account

Received on Tuesday, 23 July 2019 02:11:45 UTC