Graphics.MultiplyTransform Method (Matrix, MatrixOrder)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

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 Sub MultiplyTransform (
	matrix As Matrix,
	order As MatrixOrder


Type: System.Drawing.Drawing2D.Matrix

4x4 Matrix that multiplies the world transformation.

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 Sub MultiplyTransformMatrixOrder(ByVal e As PaintEventArgs)

    ' Create transform matrix.
    Dim transformMatrix As New Matrix

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

    ' Rotate transformation matrix of graphics object,

    ' prepending rotation matrix.

    ' 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)
End Sub

.NET Framework
Available since 1.1
Return to top