## #787 – Transforming a Point Using Matrix Multiplication

March 29, 2013 3 Comments

In WPF, all 2D transformations (e.g. scale, rotate, translate) are done internally using matrix multiplication.

Every point that you want to transform is represented as a 2 x 1 matrix (two rows and one column). For example:

Assume that you want to transform this point, represented by **x** and **y, **into a new point. We do this by multiplying a 2 x 2 transformation matrix by our original 2 x 1 matrix. The result is another 2 x 1 matrix, containing our new (transformed) point.

The operation is written as follows, assuming that **a, b, c** and **d **represent the four values in our 2 x 2 matrix. We multiply the 2 x 2 transformation matrix by the original 2 x 1 matrix to get a new 2 x 1 matrix.

(Don’t worry about the values of **a, b, c** and **d** for now–we’ll fill them in later). The actual multiplication is done as follows: