Matrix.TransformVectorsMatrix.TransformVectorsMatrix.TransformVectorsMatrix.TransformVectors Method

Definition

Multiplies each vector in an array by the matrix. The translation elements of this matrix (third row) are ignored.

 TransformVectors(Point[]) TransformVectors(Point[]) TransformVectors(Point[]) TransformVectors(Point[]) Applies only the scale and rotate components of this Matrix to the specified array of points. TransformVectors(PointF[]) TransformVectors(PointF[]) TransformVectors(PointF[]) TransformVectors(PointF[]) Multiplies each vector in an array by the matrix. The translation elements of this matrix (third row) are ignored.

TransformVectors(Point[])TransformVectors(Point[])TransformVectors(Point[])TransformVectors(Point[])

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())``

Parameters

pts
Point[]

An array of Point structures that represents the points to transform.

Examples

The following code example is designed for use with Windows Forms, and it requires PaintEventArgs`e`, 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).

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

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[])TransformVectors(PointF[])TransformVectors(PointF[])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())``

Parameters

pts
PointF[]

An array of Point structures that represents the points to transform.

Examples

For an example, see TransformVectors(Point[]).