# Transformation matrix

In linear algebra, linear transformations can be represented by matrices. If T is a linear transformation mapping Rn to Rm and x is a column vector with n entries, then

[itex]T( \vec x ) = \mathbf{A} \vec x[itex]

for some m×n matrix A, called the transformation matrix of T.

Matrices allow arbitrary linear transformations to be represented in a consistent format, suitable for computation. This also allows transformations to be concatenated easily (by multiplying their matrices).

Linear transformations are not the only ones that can be represented by matrices. Using homogeneous coordinates, both affine transformations and perspective projections on Rn can be represented as linear transformations on RPn+1 (that is, n+1-dimensional real projective space). For this reason, 4x4 transformation matrices are widely used in 3D computer graphics.

 Contents

## Finding the matrix of a transformation

If one has a linear transformation [itex]T(x)[itex] in functional form, it is easy to determine the transformation matrix A by simply transforming each of the vectors of the standard basis by T and then inserting the results into the columns of a matrix. In other words,

[itex]\mathbf{A} = \begin{bmatrix} T( \vec e_1 ) & T( \vec e_2 ) & \cdots & T( \vec e_n ) \end{bmatrix}[itex]

For example, the function [itex]T(x) = 5x[itex] is a linear transformation. Applying the above process (suppose that n = 2 in this case) reveals that

[itex]T( \vec x ) = 5 \vec x = \begin{bmatrix} 5 && 0 \\ 0 && 5 \end{bmatrix} \vec x[itex]

## Examples in 2D graphics

Most common geometric transformations are linear, including rotation, scaling, shearing, reflection, and orthogonal projection. In two dimensions, linear transformations can be represented using a 2×2 transformation matrix.

### Rotation

For rotation by an angle θ counterclockwise about the origin, the functional form is [itex]x' = x \cos \theta - y \sin \theta[itex] and [itex]y' = x \sin \theta + y \cos \theta[itex]. Written in matrix form, this becomes:

[itex]

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} \cos \theta & - \sin\theta \\ \sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [itex]

### Scaling

For scaling (that is, enlarging or shrinking), we have [itex]x' = s_x \cdot x[itex] and [itex]y' = s_y \cdot y[itex]. The matrix form is:

[itex]

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [itex]

### Shearing

For shearing (visually similar to slanting), there are two possibilities. A shear parallel to the x axis has [itex]x' = x + ky[itex] and [itex]y' = y[itex]; the matrix form is:

[itex]

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} 1 & k \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [itex]

A shear parallel to the y axis has [itex]x' = x[itex] and [itex]y' = y + kx[itex], which has matrix form:

[itex]

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ k & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [itex]

### Reflection

To reflect a vector about a line that goes through the origin, let (ux, uy) be a unit vector in the direction of the line. Then use the transformation matrix:

[itex]

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} 2 u_x^2 - 1 & 2 u_x u_y \\ 2 u_x u_y & 2 u_y^2 - 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [itex]

A reflection about a line that does not go through the origin is not a linear transformation; it is an affine transformation.

### Orthogonal projection

To project a vector orthogonally onto a line that goes through the origin, let (ux, uy) be a unit vector in the direction of the line. Then use the transformation matrix:

[itex]

\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} u_x^2 & u_x u_y \\ u_x u_y & u_y^2 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [itex]

As with reflections, the orthogonal projection onto a line that does not pass through the origin is an affine, not linear, transformation.

Parallel projections are also linear transformations and can be represented simply by a matrix. However, perspective projections are not, and to represent these with a matrix, homogeneous coordinates must be used.

## Composing and inverting transformations

One of the main motivations for using matrices to represent linear transformations is that transformations can then be easily composed (combined) and inverted.

Composition is accomplished by matrix multiplication. If A and B are the matrices of two linear transformations, then the effect of applying first A and then B to a vector x is given by:

[itex]\mathbf{B}(\mathbf{A} \vec x ) = (\mathbf{BA}) \vec x[itex]

In other words, the matrix of the combined transformation A followed by B is simply the product of the individual matrices. Note that the multiplication is done in the opposite order from the English sentence: the matrix of "A followed by B" is BA, not AB.

A consequence of the ability to compose transformations by multiplying their matrices is that transformations can also be inverted by simply inverting their matrices. So, A-1 represents the transformation that "undoes" A.

## Other kinds of transformations

### Affine transformations

To represent affine transformations with matrices, we must use homogeneous coordinates. This means representing a 2-vector (x, y) as a 3-vector (x, y, 1), and similarly for higher dimensions. Using this system, translation can be expressed with matrix multiplication. The functional form [itex]x' = x + t_x[itex]; [itex]y' = y + t_y[itex] becomes:

[itex]

\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} [itex]

All ordinary linear transformations can be converted into affine transformations by expanding their matrices by one row and column, filling the extra space with zeros except for the lower-right corner, which must be set to 1. For example, the rotation matrix from above becomes:

[itex]\begin{bmatrix} \cos \theta & - \sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix}[itex]

Using this system, translations can be seamlessly intermixed with all other types of transformations, using the same matrix multiplication as before. (This works because the real plane is mapped to the w = 1 plane in real projective space, and so translation in real space can be represented as a shear in real projective space.)

When using affine transformations, the homogeneous component of a coordinate vector (normally called w) will never be altered. One can therefore safely assume that it is always 1 and ignore it. However, this is not true when using perspective projections.

### Perspective projection

Another type of transformation, of importance in 3D computer graphics, is the perspective projection. Whereas parallel projections are used to project points onto the image plane along parallel lines, the perspective projection projects points onto the image plane along lines that emanate from a single point, called the center of projection. This means that an object has a smaller projection when it is far away from the center of projection and a larger projection when it is closer.

The simplest perspective projection uses the origin as the center of projection, and z = 1 as the image plane. The functional form of this transformation is then [itex]x' = x / z[itex]; [itex]y' = y / z[itex]. We can express this in homogeneous coordinates as:

[itex]

\begin{bmatrix} x_c \\ y_c \\ z_c \\ w_c \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1 \end{bmatrix} [itex]

(The result of carrying out this multiplication is that [itex](x_c, y_c, z_c, w_c)[itex] = [itex](x, y, z, z)[itex].)

After carrying out the matrix multiplication, the homogeneous component wc will, in general, not be equal to 1. Therefore, to map back into the real plane we must perform the homogeneous divide, i.e. divide each component by wc:

[itex]

\begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} = \begin{bmatrix} x_c / w_c \\ y_c / w_c \\ z_c / w_c \end{bmatrix} [itex]

More complicated perspective projections can be composed by combining this one with rotations, scales, translations, and shears to move the image plane and center of projection wherever they are desired.it:Matrice di trasformazione

• Art and Cultures
• Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
• Space and Astronomy