Transformation Matrix

From Math Images

Revision as of 13:50, 25 August 2009 by Mhershey1 (Talk | contribs)
Jump to: navigation, search

A transformation matrix is a special matrix used in linear algebra and computer graphics that can describe 2d and 3d transformations. If T is a linear transformation mapping Rn to Rm and x is a column vector with n entries, then

T( \vec x ) = \mathbf{A} \vec x

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


Examples in 2D Graphics

In 2D graphics Linear transformations can be represented by 2x2 matrices. Most common transformations such as rotation, scaling, shearing, and reflection are linear transformations and can be represented in the 2x2 matrix. Other affine transformations can be represented in a 3x3 matrix.


For rotation by an angle θ clockwise about the origin, the functional form is x' = xcosθ + ysinθ and y' = − xsinθ + ycosθ. Written in matrix form, this becomes:

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

Similarly, for a rotation counterclockwise about the origin, the functional form is x' = x \cos \theta - y \sin \theta and y' =  x \sin \theta + y \cos \theta and the matrix form is:

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


For scaling we have x' = s_x \cdot x and y' = s_y \cdot y. The matrix form is:

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


For shear mapping (visually similar to slanting), there are two possibilities. For a shear parallel to the x axis has x' = x + ky and y' = y; the shear matrix, applied to column vectors, is:

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

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

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

Composing transformations

2D Affine Transformations

Affine transformations are represented by (x,y,1) and a 3x3 matrix instead of a 2x2 matrix.

Personal tools