A következő példában három myMatrix által definiált ponttranszformációk szorzatát állítjuk elő a myMatrix.Multiply metódussal, majd a Graphics.Transform metódussal végrehajtjuk a transzformációt a Graphics objektumain, egy téglalapot érintő ellipszisen. A Multiply metódus MatrixOrder paramétere határozza meg a mátrix szorzás sorrendjét, amelynek lehetséges értékei:
Append: az új transzformációt a régi után kell végrehajtani
Prepend: az új transzformációt a régi előtt kell végrehajtani
Formális leírása a transzformációnak
{
Pen myPen = new Pen(Color.Blue, 1);
Pen myPen2 = new Pen(Color.Red, 1);
double alpha=30*Math.PI/180;
// Mátrixok inicializálása:
// Skálázás.
Matrix myMatrix1 = new Matrix(2.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f);
// Elforgatás 30 fokkal.
Matrix myMatrix2 = new Matrix(
(float)Math.Cos(alpha),(float)Math.Sin(alpha),
(float)-Math.Sin(alpha),(float)Math.Cos(alpha),
0.0f, 0.0f);
// Eltolás.
Matrix myMatrix3 = new Matrix(1.0f, 0.0f, 0.0f, 1.0f, 150.0f, 50.0f);
// Matrix1 és Matrix2 összeszorzása.
myMatrix1.Multiply(myMatrix2, MatrixOrder.Append);
// A szorzat mátrix szorzása Matrix3-mal.
myMatrix1.Multiply(myMatrix3, MatrixOrder.Append);
// Érintő ellipszis rajzolása:
e.Graphics.DrawRectangle(myPen, 0, 0, 100, 100);
e.Graphics.DrawEllipse(myPen, 0, 0, 100, 100);
// A szozat transzformáció végrehajtása a Graphics objektumain:
e.Graphics.Transform = myMatrix1;
// Érintő ellipszis megrajzolása a transzformáció után:
e.Graphics.DrawRectangle(myPen2, 0, 0, 100, 100);
e.Graphics.DrawEllipse(myPen, 0, 0, 100, 100);
}
Skálázott, eltolt és elforgatott érintő ellipszis