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