Graphics.MultiplyTransform Method (Matrix, MatrixOrder)

 

Multiplies the world transformation of this Graphics and specified the Matrix in the specified order.

Namespace:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public void MultiplyTransform(
	Matrix matrix,
	MatrixOrder order
)

Parameters

matrix
Type: System.Drawing.Drawing2D.Matrix

4x4 Matrix that multiplies the world transformation.

order
Type: System.Drawing.Drawing2D.MatrixOrder

Member of the MatrixOrder enumeration that determines the order of the multiplication.

A value ofPrepend for the order parameter specifies that the order of the multiplication is matrix x world transformation. A value of Append for order specifies that the order of the multiplication is world transformation x matrix.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. The code performs the following actions:

  • Creates a transformMatrix matrix (a two by two identity matrix plus a zero-translation vector).

  • Translates the transform matrix by a vector (200, 100).

  • Rotates the world transformation matrix of the Windows Form by 30 degrees, prepending the rotation matrix for 30 degrees to the form's transformation matrix.

  • Multiplies the rotated world transformation matrix by the translated transformMatrix, appending the transformMatrix to the world transformation matrix.

  • Draws a rotated, translated ellipse.

private void MultiplyTransformMatrixOrder(PaintEventArgs e)
{

    // Create transform matrix.
    Matrix transformMatrix = new Matrix();

    // Translate matrix, prepending translation vector.
    transformMatrix.Translate(200.0F, 100.0F);

    // Rotate transformation matrix of graphics object,

    // prepending rotation matrix.
    e.Graphics.RotateTransform(30.0F);

    // Multiply (append to) transformation matrix of

    // graphics object to translate graphics transformation.
    e.Graphics.MultiplyTransform(transformMatrix, MatrixOrder.Append);

    // Draw rotated, translated ellipse.
    e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);
}

.NET Framework
Available since 1.1
Return to top
Show: