Teilen über


Graphics.MultiplyTransform Methode

Definition

Multipliziert die Welttransformation dieser Graphics und gibt die Matrixan.

Überlädt

MultiplyTransform(Matrix)

Multipliziert die Welttransformation dieser Graphics und gibt die Matrixan.

MultiplyTransform(Matrix, MatrixOrder)

Multipliziert die Welttransformation dieser Graphics und gibt die Matrix in der angegebenen Reihenfolge an.

MultiplyTransform(Matrix)

Quelle:
Graphics.cs
Quelle:
Graphics.cs
Quelle:
Graphics.cs
Quelle:
Graphics.cs
Quelle:
Graphics.cs

Multipliziert die Welttransformation dieser Graphics und gibt die Matrixan.

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

Parameter

matrix
Matrix

4x4 Matrix, die die Welttransformation multipliziert.

Beispiele

Das folgende Codebeispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse, bei dem es sich um einen Parameter des Paint-Ereignishandlers handelt. Der Code führt die folgenden Aktionen aus:

  • Erstellt eine transformMatrix Matrix (zwei durch zwei Identitätsmatrix und einen Nullübersetzungsvektor).

  • Übersetzt die Transformationsmatrix durch einen Vektor (200, 100).

  • Dreht die Welttransformationsmatrix von Windows Form um 30 Grad, stellt die Drehungsmatrix um 30 Grad zur Transformationsmatrix des Formulars vor.

  • Multipliziert die gedrehte Welttransformationsmatrix durch die übersetzte transformMatrixund stellt die transformMatrix der Welttransformationsmatrix voran.

  • Zeichnet eine gedrehte, übersetzte 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

Hinweise

Mit dieser Methode wird die durch den parameter matrix angegebene Matrix vorangestellt, sodass das Ergebnis matrix x Welttransformation ist.

Weitere Informationen

Gilt für:

MultiplyTransform(Matrix, MatrixOrder)

Quelle:
Graphics.cs
Quelle:
Graphics.cs
Quelle:
Graphics.cs
Quelle:
Graphics.cs
Quelle:
Graphics.cs

Multipliziert die Welttransformation dieser Graphics und gibt die Matrix in der angegebenen Reihenfolge an.

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

Parameter

matrix
Matrix

4x4 Matrix, die die Welttransformation multipliziert.

order
MatrixOrder

Mitglied der MatrixOrder-Aufzählung, die die Reihenfolge der Multiplikation bestimmt.

Beispiele

Das folgende Codebeispiel wurde für die Verwendung mit Windows Forms entwickelt und erfordert PaintEventArgse, bei dem es sich um einen Parameter des Paint-Ereignishandlers handelt. Der Code führt die folgenden Aktionen aus:

  • Erstellt eine transformMatrix Matrix (zwei durch zwei Identitätsmatrix und einen Nullübersetzungsvektor).

  • Übersetzt die Transformationsmatrix durch einen Vektor (200, 100).

  • Dreht die Welttransformationsmatrix von Windows Form um 30 Grad, bevor die Drehungsmatrix 30 Grad auf die Transformationsmatrix des Formulars aussteht.

  • Multipliziert die gedrehte Welttransformationsmatrix durch die übersetzte transformMatrix, wobei die transformMatrix an die Welttransformationsmatrix angefügt wird.

  • Zeichnet eine gedrehte, übersetzte 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

Hinweise

Ein Wert von Prepend für den parameter order gibt an, dass die Reihenfolge der Multiplikation matrix x Welttransformation ist. Ein Wert von Append für order gibt an, dass die Reihenfolge der Multiplikation die Welttransformation x matrixist.

Weitere Informationen

Gilt für: