Matrix.TransformVectors Méthode

Définition

Multiplie chaque vecteur d'un tableau par la matrice.Multiplies each vector in an array by the matrix. Les éléments de translation de cette matrice (troisième ligne) sont ignorés.The translation elements of this matrix (third row) are ignored.

Surcharges

TransformVectors(Point[])

Applique uniquement les composants d'échelle et de rotation de ce Matrix au tableau de points spécifié.Applies only the scale and rotate components of this Matrix to the specified array of points.

TransformVectors(PointF[])

Multiplie chaque vecteur d'un tableau par la matrice.Multiplies each vector in an array by the matrix. Les éléments de translation de cette matrice (troisième ligne) sont ignorés.The translation elements of this matrix (third row) are ignored.

TransformVectors(Point[])

Applique uniquement les composants d'échelle et de rotation de ce Matrix au tableau de points spécifié.Applies only the scale and rotate components of this Matrix to the specified array of points.

public:
 void TransformVectors(cli::array <System::Drawing::Point> ^ pts);
public void TransformVectors (System.Drawing.Point[] pts);
member this.TransformVectors : System.Drawing.Point[] -> unit
Public Sub TransformVectors (pts As Point())

Paramètres

pts
Point[]

Tableau de structures Point qui représente les points à transformer.An array of Point structures that represents the points to transform.

Exemples

L’exemple de code suivant est conçu pour être utilisé avec Windows Forms, et il requiert PaintEventArgse, un objet d’événement Paint.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an Paint event object. Le code effectue les actions suivantes :The code performs the following actions:

  • Crée un tableau de points formant un rectangle.Creates an array of points that form a rectangle.

  • Dessine ce tableau de points à l’écran avant l’application d’une transformation de mise à l’échelle (rectangle bleu).Draws this array of points to the screen prior to applying a scaling transform (the blue rectangle).

  • Crée une matrice et la met à l’échelle de 3 sur l’axe des x et 2 sur l’axe des y, et la convertit par 100 dans les deux axes.Creates a matrix and scales it by 3 in the x-axis and 2 in the y-axis, and translates it by 100 in both axes.

  • Répertorie les éléments de la matrice à l’écran.Lists the matrix elements to the screen.

  • Applique cette transformation de matrice au tableau de points.Applies this matrix transform to the array of points.

  • Dessine le tableau transformé à l’écran (rectangle rouge).Draws the transformed array to the screen (the red rectangle).

Notez que le rectangle rouge a été mis à l’échelle par un facteur de 3 sur l’axe x et par 2 sur l’axe des y, y compris l’angle supérieur gauche du rectangle (le point de départ du rectangle), mais que le vecteur de translation (les deux derniers éléments de la matrice) est ignoré.Notice that the red rectangle has been scaled by a factor of 3 in the x-axis and by 2 in the y-axis, including the upper left-hand corner of the rectangle (the beginning point of the rectangle) but the translation vector (the last two elements of the matrix) is ignored.

public:
   void TransformVectorsExample( PaintEventArgs^ e )
   {
      Pen^ myPen = gcnew Pen( Color::Blue,1.0f );
      Pen^ myPen2 = gcnew Pen( Color::Red,1.0f );

      // Create an array of points.
      array<Point>^ myArray = {Point(20,20),Point(120,20),Point(120,120),Point(20,120),Point(20,20)};

      // Draw the Points to the screen before applying the
      // transform.
      e->Graphics->DrawLines( myPen, myArray );

      // Create a matrix, scale it, and translate it.
      Matrix^ myMatrix = gcnew Matrix;
      myMatrix->Scale( 3, 2, MatrixOrder::Append );
      myMatrix->Translate( 100, 100, MatrixOrder::Append );

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

      // Apply the transform to the array.
      myMatrix->TransformVectors( myArray );

      // Draw the Points to the screen again after applying the
      // transform.
      e->Graphics->DrawLines( myPen2, myArray );
   }

   //-------------------------------------------------------
   // This function is a helper function to
   // list the contents of a matrix.
   //-------------------------------------------------------
   void ListMatrixElements( 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 TransformVectorsExample(PaintEventArgs e)
{
    Pen myPen = new Pen(Color.Blue, 1);
    Pen myPen2 = new Pen(Color.Red, 1);
             
    // Create an array of points.
    Point[] myArray =
             {
                 new Point(20, 20),
                 new Point(120, 20),
                 new Point(120, 120),
                 new Point(20, 120),
                 new Point(20,20)
             };
             
    // Draw the Points to the screen before applying the
    // transform.
    e.Graphics.DrawLines(myPen, myArray);
             
    // Create a matrix, scale it, and translate it.
    Matrix myMatrix = new Matrix();
    myMatrix.Scale(3, 2, MatrixOrder.Append);
    myMatrix.Translate(100, 100, MatrixOrder.Append);
             
    // List the matrix elements to the screen.
    ListMatrixElements(e,
        myMatrix,
        "Scaled and Translated Matrix",
        6,
        20);
             
    // Apply the transform to the array.
    myMatrix.TransformVectors(myArray);
             
    // Draw the Points to the screen again after applying the
    // transform.
    e.Graphics.DrawLines(myPen2, myArray);
}
             
//-------------------------------------------------------
// This function is a helper function to
// list the contents of a matrix.
//-------------------------------------------------------
public void ListMatrixElements(
    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 TransformVectorsExample(ByVal e As PaintEventArgs)
    Dim myPen As New Pen(Color.Blue, 1)
    Dim myPen2 As New Pen(Color.Red, 1)

    ' Create an array of points.
    Dim myArray As Point() = {New Point(20, 20), New Point(120, 20), _
    New Point(120, 120), New Point(20, 120), New Point(20, 20)}

    ' Draw the Points to the screen before applying the
    ' transform.
    e.Graphics.DrawLines(myPen, myArray)

    ' Create a matrix and scale it.
    Dim myMatrix As New Matrix
    myMatrix.Scale(3, 2, MatrixOrder.Append)
    myMatrix.Translate(100, 100, MatrixOrder.Append)
    ListMatrixElementsHelper(e, myMatrix, _
    "Scaled and Translated Matrix", 6, 20)
    myMatrix.TransformVectors(myArray)

    ' Draw the Points to the screen again after applying the
    ' transform.
    e.Graphics.DrawLines(myPen2, myArray)
End Sub

' A helper function to list the contents of a matrix.
Public Sub ListMatrixElementsHelper(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

TransformVectors(PointF[])

Multiplie chaque vecteur d'un tableau par la matrice.Multiplies each vector in an array by the matrix. Les éléments de translation de cette matrice (troisième ligne) sont ignorés.The translation elements of this matrix (third row) are ignored.

public:
 void TransformVectors(cli::array <System::Drawing::PointF> ^ pts);
public void TransformVectors (System.Drawing.PointF[] pts);
member this.TransformVectors : System.Drawing.PointF[] -> unit
Public Sub TransformVectors (pts As PointF())

Paramètres

pts
PointF[]

Tableau de structures Point qui représente les points à transformer.An array of Point structures that represents the points to transform.

Exemples

Pour obtenir un exemple, consultez TransformVectors(Point[]).For an example, see TransformVectors(Point[]).

S’applique à