## #795 – How a Translation Transform Works

April 10, 2013 1 Comment

A 2D translation transform in WPF is accomplished by using a transformation matrix. The transformation matrix is multiplied by another matrix representing a single 2D point to be transformed. The resulting matrix describes the transformed point.

Unlike rotation and scaling transforms, we can’t perform a translation by multiplying a 2 x 2 matrix (representing the transform) by a 2 x 1 matrix (representing the point). Instead, we multiple a 3 x 3 matrix by a 3 x 1 matrix, as shown below.

In this case, we represent the point **(x, y) **not by a 2 x 1 matrix, but by a 3 x 1 matrix where the third row is always 1. The resulting 3 x 1 matrix then also contains a third row with a value of 1 and the new transformed **(x, y) **point in the first two rows.

Notice that we get what we expect for a translation. **Tx** is added to **x** and **Ty** is added to **y**, representing a translation**.**