Matrix.TransformVectors 메서드

정의

배열의 각 벡터에 매트릭스를 곱합니다.Multiplies each vector in an array by the matrix. 이 매트릭스의 이동 요소(셋째 행)는 무시됩니다.The translation elements of this matrix (third row) are ignored.

오버로드

TransformVectors(Point[])

Matrix의 배율과 회전 구성 요소만 지정된 지점의 배열에 적용합니다.Applies only the scale and rotate components of this Matrix to the specified array of points.

TransformVectors(PointF[])

배열의 각 벡터에 매트릭스를 곱합니다.Multiplies each vector in an array by the matrix. 이 매트릭스의 이동 요소(셋째 행)는 무시됩니다.The translation elements of this matrix (third row) are ignored.

TransformVectors(Point[])

Matrix의 배율과 회전 구성 요소만 지정된 지점의 배열에 적용합니다.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())

매개 변수

pts
Point[]

변환할 지점을 나타내는 Point 구조체의 배열입니다.An array of Point structures that represents the points to transform.

예제

다음 코드 예제는 Windows Forms에서 사용 하도록 설계 되었으며 필요 PaintEventArgs e, Paint 이벤트 개체입니다.The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an Paint event object. 이 코드에서는 다음 작업을 수행합니다.The code performs the following actions:

  • 사각형을 형성 하는 요소의 배열을 만듭니다.Creates an array of points that form a rectangle.

  • 이 배열 요소의 크기 조정 변환을 (파란색 사각형)를 적용 하기 전에 화면 그립니다.Draws this array of points to the screen prior to applying a scaling transform (the blue rectangle).

  • 행렬을 만듭니다 하 고 x 축 및 y 축에는 2 확장 하 고 양쪽 축에서 100으로 변환 합니다.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.

  • 화면에 행렬 요소를 나열합니다.Lists the matrix elements to the screen.

  • 이 매트릭스 변환을 지점의 배열에 적용 됩니다.Applies this matrix transform to the array of points.

  • 변환된 된 배열 (빨간색 사각형) 화면으로 그립니다.Draws the transformed array to the screen (the red rectangle).

것을 볼 수는 빨간색 사각형 (사각형의 시작 지점) 사각형의 왼쪽 위 모서리를 포함 하 여 y 축에서 2 및 3 x 축에서의 비율로 크기 조정에 이동 벡터 (행렬의 마지막 두 개의 요소)은 무시 됩니다.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[])

배열의 각 벡터에 매트릭스를 곱합니다.Multiplies each vector in an array by the matrix. 이 매트릭스의 이동 요소(셋째 행)는 무시됩니다.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())

매개 변수

pts
PointF[]

변환할 지점을 나타내는 Point 구조체의 배열입니다.An array of Point structures that represents the points to transform.

예제

예제를 보려면 TransformVectors(Point[])를 참조하세요.For an example, see TransformVectors(Point[]).

적용 대상