[fxtf-drafts] [geometry-1] TYPO? 2.1(6) should be pre-multiply , not post-multiply.

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

== [geometry-1] TYPO? 2.1(6) should be pre-multiply ,not post-multiply. ==
Step 6 of [Section 2.1](https://drafts.fxtf.org/geometry/#transforming-a-point-with-a-matrix) _Transforming a point with a matrix_, says 

>Set pointVector to pointVector post-multiplied by matrix. 

pointVector was defined as a **column** vector in the previous step. And the definition of [post-multiply](https://drafts.fxtf.org/geometry/#matrix-post-multiply) is:

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

So that's `pointVector · matrix`; i.e. `columnVector  · matrix`

That's not mathematically possible.  Matrix multiplication produces a new matrix whose elements are the inner products of the left-hand matrix's rows with the right-hand's columns; so for <b>C</b> = <b>A</b> · <b>B</b>

<a href="https://www.codecogs.com/eqnedit.php?latex=C_{ij}=\sum_{k}A_{ik}B_{kj}" target="_blank"><img src="https://latex.codecogs.com/gif.latex?C_{ij}=\sum_{k}A_{ik}B_{kj}" title="C_{ij}=\sum_{k}A_{ik}B_{kj}" /></a>

A 4-element column vector multiplied by a 4x4 matrix means calculating the dot product of a 1-element row with a 4-element column. There's no way to do it.


The text _should_ say 
> Set pointVector to pointVector pre-multiplied by matrix.

or
>Set pointVector to matrix post-multiplied by pointVector.

or it should construct pointVector as a row vector and post-multiply by the transpose of the matrix.

I've read and re-read the spec, and I can't see I've got this wrong this time.  But I've not done a PR in case my eyes have [swizzled](https://www.khronos.org/opengl/wiki/Data_Type_(GLSL)#Swizzling) the words again.

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

Received on Saturday, 16 June 2018 17:22:36 UTC