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)

void MultiplyTransform(
	Matrix^ matrix,
	MatrixOrder order


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.

   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 );

.NET Framework
Available since 1.1
Return to top