Matrix.Reset Metoda

Definicja

Resetuje ten Matrix element tak, aby miał elementy macierzy tożsamości.Resets this Matrix to have the elements of the identity matrix.

public:
 void Reset();
public void Reset ();
member this.Reset : unit -> unit
Public Sub Reset ()

Przykłady

Poniższy przykład kodu jest przeznaczony do użytku z Windows Forms i wymaga PaintEventArgs e Paint obiektu zdarzenia.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an Paint event object. Kod wykonuje następujące czynności:The code performs the following actions:

  • Tworzy macierz skalowania.Creates a scaling matrix.

  • Wyświetla listę elementów macierzy na ekranie.Lists the matrix elements to the screen.

  • Resetuje macierz do tożsamości.Resets the matrix to identity.

  • Wyświetla listę elementów na ekranie.Lists the elements to the screen.

  • Tłumaczy macierz przez 50 punktów na osi x i 40 punktów na osi y.Translates the matrix by 50 points in the x-axis and 40 points in the y-axis.

  • Wyświetla listę elementów przetłumaczonej macierzy na ekranie.Lists the elements of the translated matrix to the screen.

  • Rysuje prostokąt jest rysowany na ekranie przed zastosowaniem transformacji macierzy (niebieskim prostokątem).Draws a rectangle is drawn to the screen prior to applying the matrix transform (the blue rectangle).

  • Stosuje przekształcenie do prostokąta.Applies the transform to the rectangle.

  • Rysuje przekształcony prostokąt jest rysowany na ekranie (czerwony prostokąt), przy użyciu takich samych współrzędnych jak poprzedni prostokąt.Draws the transformed rectangle is drawn to the screen (the red rectangle), using the same coordinates as the previous rectangle.

Zauważ, że czerwony prostokąt nie był skalowany (z powodu resetowania), ale został przetłumaczony na osi x i y.Notice that the red rectangle was not scaled (because of the reset) but was translated in the x-axis and y-axis.

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.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 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

Uwagi

Elementy na głównym przekątnej macierzy tożsamości to 1.The elements on the main diagonal of the identity matrix are 1. Wszystkie inne elementy macierzy tożsamości są równe 0.All other elements of the identity matrix are 0.

Dotyczy