#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.