Graphics.MultiplyTransformGraphics.MultiplyTransformGraphics.MultiplyTransform Method

Definition

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

 MultiplyTransform(Matrix) MultiplyTransform(Matrix) MultiplyTransform(Matrix) Multiplies the world transformation of this Graphics and specified the Matrix. MultiplyTransform(Matrix, MatrixOrder) MultiplyTransform(Matrix, MatrixOrder) MultiplyTransform(Matrix, MatrixOrder) Multiplies the world transformation of this Graphics and specified the Matrix in the specified order.

MultiplyTransform(Matrix)MultiplyTransform(Matrix)MultiplyTransform(Matrix)

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

``````public:
void MultiplyTransform(System::Drawing::Drawing2D::Matrix ^ matrix);``````
``public void MultiplyTransform (System.Drawing.Drawing2D.Matrix matrix);``
``member this.MultiplyTransform : System.Drawing.Drawing2D.Matrix -> unit``

Parameters

matrix
Matrix Matrix Matrix

4x4 Matrix that multiplies the world transformation.

Examples

The following code example is designed for use with Windows Forms, and it requires PaintEventArgs`e`, 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, prepends the rotation matrix for 30 degrees to the form's transformation matrix.

• Multiplies the rotated world transformation matrix by the translated `transformMatrix`, and prepends the `transformMatrix` to the world transformation matrix.

• Draws a rotated, translated ellipse.

``````public:
void MultiplyTransformMatrix( PaintEventArgs^ e )
{
// Create transform matrix.
Matrix^ transformMatrix = gcnew 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 (prepend to) transformation matrix of
// graphics object to translate graphics transformation.
e->Graphics->MultiplyTransform( transformMatrix );

// Draw rotated, translated ellipse.
e->Graphics->DrawEllipse( gcnew Pen( Color::Blue,3.0f ), -80, -40, 160, 80 );
}
``````
``````private void MultiplyTransformMatrix(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 (prepend to) transformation matrix of

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

// Draw rotated, translated ellipse.
e.Graphics.DrawEllipse(new Pen(Color.Blue, 3), -80, -40, 160, 80);
}
``````
``````Private Sub MultiplyTransformMatrix(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.
e.Graphics.RotateTransform(30.0F)

' Multiply (prepend to) transformation matrix of

' graphics object to translate graphics transformation.
e.Graphics.MultiplyTransform(transformMatrix)

' Draw rotated, translated ellipse.
e.Graphics.DrawEllipse(New Pen(Color.Blue, 3), -80, -40, 160, 80)
End Sub
``````

Remarks

This method prepends the matrix specified by the `matrix` parameter, so that the result is `matrix` x world transformation.

MultiplyTransform(Matrix, MatrixOrder)MultiplyTransform(Matrix, MatrixOrder)MultiplyTransform(Matrix, MatrixOrder)

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

``````public:
void MultiplyTransform(System::Drawing::Drawing2D::Matrix ^ matrix, System::Drawing::Drawing2D::MatrixOrder order);``````
``public void MultiplyTransform (System.Drawing.Drawing2D.Matrix matrix, System.Drawing.Drawing2D.MatrixOrder order);``
``member this.MultiplyTransform : System.Drawing.Drawing2D.Matrix * System.Drawing.Drawing2D.MatrixOrder -> unit``

Parameters

matrix
Matrix Matrix Matrix

4x4 Matrix that multiplies the world transformation.

order
MatrixOrder MatrixOrder MatrixOrder

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

Examples

The following code example is designed for use with Windows Forms, and it requires PaintEventArgs`e`, 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.

``````public:
void MultiplyTransformMatrixOrder( PaintEventArgs^ e )
{
// Create transform matrix.
Matrix^ transformMatrix = gcnew 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( gcnew Pen( Color::Blue,3.0f ), -80, -40, 160, 80 );
}
``````
``````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);
}
``````
``````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.
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)
End Sub
``````

Remarks

A value of Prepend 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`.