An affine transform is a generalization of a rigid transform, in which the rotational component is replaced by a general matrix . This means that an affine transform implements a generalized basis transformation combined with an offset of the origin (Figure A.7). As with for rigid transforms, the columns of still describe the transformed basis vectors , , and , but these are generally no longer orthonormal.
Expressed in terms of homogeneous coordinates, the affine transform takes the form
(A.18) |
with
(A.19) |
As with rigid transforms, when an affine transform is applied to a vector instead of a point, only the matrix is applied and the translation component is ignored.
Affine transforms are typically used to effect transformations that require stretching and shearing of a coordinate frame. By the polar decomposition theorem, can be factored into a regular rotation plus a symmetric shearing/scaling matrix :
(A.20) |
Affine transforms can also be used to perform reflections, in which is orthogonal (so that ) but with .