1

I'm trying to wrap my head around geometric transformations of 3D points (represented as 4x4 matrices) and understanding how to compose and decompose them.

In particular I've encountered, in order of increasing generality:

Rigid (aka Euclidean) Transforms - rotation and translation Similarity Transforms - rotation, translation, uniform scaling Affine Transforms - rotation, translation, scaling, shearing Homography (aka Perspective, Projective) Transforms - additionally does not necessarily maintain pairs of parallel lines.

(I'm hoping my understanding of that taxonomy is accurate so far, if not please correct me)

For a rigid transformation (when represented at a matrix [R | t]) the operation is rotated FOLLOWED by translation.

For a similarity transformation is doesn't matter when the scaling happens because it's a diagonal matrix so it commutes with all other matrices.

But when I think about an affine transform or homography is there a conventional order that the parts of the transform take place? How do I gain some intuition for this just looking at the matrix?

Perhaps a related question is how to decompose these different types or transforms into their components (rotation, scale, shear, translation) and more importantly what is the order associated with that decomposition and why? Is it unique?

  • It is not true that "For a similarity transformation is doesn't matter ". –  Apr 06 '20 at 19:34
  • See also: https://math.stackexchange.com/questions/3611693/determining-a-minimal-set-of-component-affine-transformations – David G. Stork Apr 06 '20 at 19:43
  • @YvesDaoust Can you help me understand why? SA = AS if A is a 4x4 matrix and S = s*I, where s is a scalar and I is 4x4 identity – nickponline Apr 06 '20 at 20:01
  • @nickponline: does not commute with translation. –  Apr 06 '20 at 20:04
  • A general diagonal matrix does not commute with every matrix. Try it for yourself with generic $2\times2$ matrices. On the other hand, a multiple of the identity matrix, i.e., a uniform scaling does. – amd Apr 07 '20 at 07:20
  • Ah I meant scalar diagonal matrix s*I not a general diagonal matrix. – nickponline Apr 07 '20 at 16:29

1 Answers1

1

There is no specific order, this is application-dependent and situations are various.

For instance, a rotation $R$ around an arbitrary center $c$ would be applied by

  • translating $c$ to the origin ($-c$ translation),

  • rotating around the origin,

  • translating back to $c$.

Hence

$$p'=R(p-c)+c=Rp-Rc+c=Rp+t$$

or

$$p'=R(p-c)+c=R(p-c+R^{-1}c)=R(p+t).$$