-
Notifications
You must be signed in to change notification settings - Fork 52
Description
Step 6 of Section 2.1 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 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 C = A · B
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 the words again.