Freigeben über


Matrix.Reset-Methode

Setzt diese Matrix zurück, sodass sie die Elemente der Identitätsmatrix enthält.

Namespace: System.Drawing.Drawing2D
Assembly: System.Drawing (in system.drawing.dll)

Syntax

'Declaration
Public Sub Reset
'Usage
Dim instance As Matrix

instance.Reset
public void Reset ()
public:
void Reset ()
public void Reset ()
public function Reset ()

Hinweise

Die Elemente auf der Hauptdiagonalen der Identitätsmatrix haben den Wert 1. Alle anderen Elemente der Identitätsmatrix haben den Wert 0.

Beispiel

Das folgende Codebeispiel ist für die Verwendung mit Windows Forms vorgesehen und erfordert das Paint-Ereignisobjekt PaintEventArgse. Der Code führt die folgenden Aktionen aus:

  • Erstellt eine Skalierungsmatrix.

  • Gibt die Matrixelemente auf dem Bildschirm aus.

  • Setzt die Matrix auf Identität zurück.

  • Gibt die Elemente auf dem Bildschirm aus.

  • Verschiebt die Matrix um 50 Punkte auf der x-Achse und um 40 Punkte auf der y-Achse.

  • Gibt die Elemente der verschobenen Matrix auf dem Bildschirm aus.

  • Zeichnet vor dem Zuweisen der Matrixtransformation ein Rechteck auf dem Bildschirm (das blaue Rechteck).

  • Weist die Transformation dem Rechteck zu.

  • Zeichnet das transformierte Rechteck mit den Koordinaten des vorherigen Rechtecks auf dem Bildschirm (das rote Rechteck).

Beachten Sie, dass das rote Rechteck wegen des Zurücksetzens nicht skaliert war, jedoch auf der x- und y-Achse verschoben wurde.

Public Sub ResetExample(ByVal e As PaintEventArgs)
    Dim myPen As New Pen(Color.Blue, 1)
    Dim myPen2 As New Pen(Color.Red, 1)
    Dim myMatrix As New Matrix(5.0F, 0.0F, 0.0F, 3.0F, 0.0F, 0.0F)

    ListMatrixElementsHelper2(e, myMatrix, "Beginning Matrix", 6, 20)
    myMatrix.Reset()
    ListMatrixElementsHelper(e, myMatrix, "Matrix After Reset", 6, 40)

    ' Translate.
    myMatrix.Translate(50.0F, 40.0F)

    ListMatrixElementsHelper(e, myMatrix, "Matrix After Translation", _
        6, 60)
    e.Graphics.DrawRectangle(myPen, 0, 0, 100, 100)
    e.Graphics.Transform = myMatrix
    e.Graphics.DrawRectangle(myPen2, 0, 0, 100, 100)
End Sub

' A helper function to list the contents of a matrix.
Public Sub ListMatrixElementsHelper2(ByVal e As PaintEventArgs, _
ByVal matrix As Matrix, ByVal matrixName As String, ByVal numElements As Integer, _
ByVal y As Integer)

    ' Set up variables for drawing the array
    ' of points to the screen.
    Dim i As Integer
    Dim x As Single = 20
    Dim j As Single = 200
    Dim myFont As New Font("Arial", 8)
    Dim myBrush As New SolidBrush(Color.Black)

    ' Draw the matrix name to the screen.
    e.Graphics.DrawString(matrixName + ":  ", myFont, myBrush, x, y)

    ' Draw the set of path points and types to the screen.
    For i = 0 To numElements - 1
        e.Graphics.DrawString(matrix.Elements(i).ToString() + ", ", _
        myFont, myBrush, j, y)
        j += 30
    Next i
End Sub
public void ResetExample(PaintEventArgs e)
{
    Pen myPen = new Pen(Color.Blue, 1);
    Pen myPen2 = new Pen(Color.Red, 1);
             
    // Create a matrix that scales by 5 in the x direction and
    // by 3 in the y direction.
    Matrix myMatrix = new Matrix(
        5.0f, 0.0f, 0.0f, 3.0f, 0.0f, 0.0f); 
             
    // List the matrix elements to the screen.
    ListMatrixElements(e, myMatrix, "Beginning Matrix", 6, 20);
             
    // Reset the matrix to identity.
    myMatrix.Reset();
             
    // Again list the matrix elements to the screen.
    ListMatrixElements2(e, myMatrix, "Matrix After Reset", 6, 40);
             
    // Translate the matrix by 50 points in the x-axis and 40 points
    // in the y-axis.
    myMatrix.Translate(50.0f, 40.0f); 
  
    // List the matrix elements to the screen.
    ListMatrixElements1(e, myMatrix, "Matrix After Translation", 6, 60);
             
    // Draw a rectangle to the screen.
    e.Graphics.DrawRectangle(myPen, 0, 0, 100, 100);
             
    // Apply the matrix transform to the Graphics.
    e.Graphics.Transform = myMatrix;
             
    // Draw another rectangle to the screen that has the transform
    // applied.
    e.Graphics.DrawRectangle(myPen2, 0, 0, 100, 100);
}
             
//-------------------------------------------------------
// This function is a helper function to
// list the contents of a matrix.
//-------------------------------------------------------
public void ListMatrixElements2(
    PaintEventArgs e,
    Matrix matrix,
    string matrixName,
    int numElements,
    int y)
{
             
    // Set up variables for drawing the array
    // of points to the screen.
    int i;
    float x = 20, X = 200;
    Font myFont = new Font("Arial", 8);
    SolidBrush myBrush = new SolidBrush(Color.Black);
             
    // Draw the matrix name to the screen.
    e.Graphics.DrawString(
        matrixName + ":  ",
        myFont,
        myBrush,
        x,
        y);
             
    // Draw the set of path points and types to the screen.
    for(i=0; i < numElements; i++)
    {
        e.Graphics.DrawString(
            matrix.Elements[i].ToString() + ", ",
            myFont,
            myBrush,
            X,
            y);
        X += 30;
    }
}
public:
   void ResetExample( PaintEventArgs^ e )
   {
      Pen^ myPen = gcnew Pen( Color::Blue,1.0f );
      Pen^ myPen2 = gcnew Pen( Color::Red,1.0f );

      // Create a matrix that scales by 5 in the x direction and
      // by 3 in the y direction.
      Matrix^ myMatrix = gcnew Matrix( 5.0f,0.0f,0.0f,3.0f,0.0f,0.0f );

      // List the matrix elements to the screen.
      ListMatrixElements( e, myMatrix, "Beginning Matrix", 6, 20 );

      // Reset the matrix to identity.
      myMatrix->Reset();

      // Again list the matrix elements to the screen.
      ListMatrixElements2( e, myMatrix, "Matrix After Reset", 6, 40 );

      // Translate the matrix by 50 points in the x-axis and 40 points
      // in the y-axis.
      myMatrix->Translate( 50.0f, 40.0f );

      // List the matrix elements to the screen.
      ListMatrixElements1( e, myMatrix, "Matrix After Translation", 6, 60 );

      // Draw a rectangle to the screen.
      e->Graphics->DrawRectangle( myPen, 0, 0, 100, 100 );

      // Apply the matrix transform to the Graphics.
      e->Graphics->Transform = myMatrix;

      // Draw another rectangle to the screen that has the transform
      // applied.
      e->Graphics->DrawRectangle( myPen2, 0, 0, 100, 100 );
   }

   //-------------------------------------------------------
   // This function is a helper function to
   // list the contents of a matrix.
   //-------------------------------------------------------
   void ListMatrixElements2( PaintEventArgs^ e, Matrix^ matrix, String^ matrixName, int numElements, int y )
   {
      // Set up variables for drawing the array
      // of points to the screen.
      int i;
      float x = 20,X = 200;
      System::Drawing::Font^ myFont = gcnew System::Drawing::Font( "Arial",8 );
      SolidBrush^ myBrush = gcnew SolidBrush( Color::Black );

      // Draw the matrix name to the screen.
      e->Graphics->DrawString( String::Concat( matrixName, ":  " ), myFont, myBrush, (float)x, (float)y );

      // Draw the set of path points and types to the screen.
      for ( i = 0; i < numElements; i++ )
      {
         e->Graphics->DrawString( String::Concat( matrix->Elements[ i ], ", " ), myFont, myBrush, (float)X, (float)y );
         X += 30;
      }
   }
public void ResetExample(PaintEventArgs e)
{
    Pen myPen = new Pen(Color.get_Blue(), 1);
    Pen myPen2 = new Pen(Color.get_Red(), 1);

    // Create a matrix that scales by 5 in the x direction and
    // by 3 in the y direction.
    Matrix myMatrix = new Matrix(5, 0, 0, 3, 0, 0);

    // List the matrix elements to the screen.
    ListMatrixElements(e, myMatrix, "Beginning Matrix", 6, 20);

    // Reset the matrix to identity.
    myMatrix.Reset();

    // Again list the matrix elements to the screen.
    ListMatrixElements2(e, myMatrix, "Matrix After Reset", 6, 40);

    // Translate the matrix by 50 points in the x-axis and 40 points
    // in the y-axis.
    myMatrix.Translate(50, 40);

    // List the matrix elements to the screen.
    ListMatrixElements1(e, myMatrix, "Matrix After Translation", 6, 60);

    // Draw a rectangle to the screen.
    e.get_Graphics().DrawRectangle(myPen, 0, 0, 100, 100);

    // Apply the matrix transform to the Graphics.
    e.get_Graphics().set_Transform(myMatrix);

    // Draw another rectangle to the screen that has the transform
    // applied.
    e.get_Graphics().DrawRectangle(myPen2, 0, 0, 100, 100);
} //ResetExample

//-------------------------------------------------------
// This function is a helper function to
// list the contents of a matrix.
//-------------------------------------------------------
public void ListMatrixElements2(PaintEventArgs e, Matrix matrix, 
    String matrixName, int numElements, int y)
{
    // Set up variables for drawing the array
    // of points to the screen.
    int i;
    float x = 20;
    float X = 200;
    Font myFont = new Font("Arial", 8);
    SolidBrush myBrush = new SolidBrush(Color.get_Black());

    // Draw the matrix name to the screen.
    e.get_Graphics().DrawString(matrixName + ":  ", myFont, myBrush, x, y);

    // Draw the set of path points and types to the screen.
    for (i = 0; i < numElements; i++) {
        e.get_Graphics().DrawString(
            matrix.get_Elements().get_Item(i).ToString() + ", ", myFont, 
            myBrush, X, y);
        X += 30;
    }
} //ListMatrixElements2

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Matrix-Klasse
Matrix-Member
System.Drawing.Drawing2D-Namespace