Why are these matrices oddly sized?

45 Views Asked by At

enter image description here

With regards to the above image which was delivered as a slide in a Computer Vision course, I can't understand why this matrix multiplication is represented as a $4\times4$ * $4\times1$ where I feel as though the same result could be achieved with a $3\times3$ * $3\times1$.

Is there some missing information around this that y'all can shine some light on? I'm sure there must be some underlying reason.

2

There are 2 best solutions below

1
On BEST ANSWER

This neat little trick makes computer graphics a lot easier to handle under the hood. Here is the gist of it:

Positions are four-dimensional vectors where the fourth component is $1$. Displacements (distances, velocities, etc.) are four-dimensional vectors where the fourth component is $0$. In other words, objects live not in $\Bbb R^3$, but in a hyperplane in $\Bbb R^4$, and displacements live in a distinct, parallel hyperplane of the same $\Bbb R^4$

Some consequences of this are:

  • Some extra power of bug-discovery: The fourth component should ever only be either $0$ or $1$. If it's anything else, you know you've added two positions, or subtracted a position from a displacement rather than the other way around, and so on.
  • Translations can now also be linear maps, and as such be represented as matrix multiplication just as scaling and rotation. This makes it much easier to handle multiple transformations in a row.
  • Displacements are correctly changed by rotations and scalings, and correctly unchanged by translations. This means we don't have to check every single vector whether it's a displacement or a position before applying a series of transformations, the arithmetic will do that automatically.
  • You can place objects in the displacement hyperplane, and they will then in many respects behave like they are "infinitely far away". The sky is a common thing to do this with.
1
On

This kind of matrices are used to represent affine transformations. See here.

Linear transformations can be represented by $3\times 3$ matrices, but they can't represent translations, since $A0=0$. If another entry is added to the vectors (and another column and row to the matrices) then translations can also be represented and worked through matrix operations.