Matrix.TransformVectors Method

Definition

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

Overloads

TransformVectors(Point[])

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(ReadOnlySpan<Point>)

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

TransformVectors(ReadOnlySpan<PointF>)

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

TransformVectors(Point[])

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

Applies only the scale and rotate components of this Matrix to the specified array of points.

C#
public void TransformVectors(params System.Drawing.Point[] pts);
C#
public void TransformVectors(System.Drawing.Point[] pts);

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.

C#
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;
    }
}

Applies to

.NET 9 (package-provided) and other versions
Product Versions
.NET 8 (package-provided), 9 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

TransformVectors(PointF[])

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

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

C#
public void TransformVectors(params System.Drawing.PointF[] pts);
C#
public void TransformVectors(System.Drawing.PointF[] pts);

Parameters

pts
PointF[]

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

Examples

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

Applies to

.NET 9 (package-provided) and other versions
Product Versions
.NET 8 (package-provided), 9 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

TransformVectors(ReadOnlySpan<Point>)

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

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

C#
public void TransformVectors(scoped ReadOnlySpan<System.Drawing.Point> pts);

Parameters

pts
ReadOnlySpan<Point>

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

Applies to

.NET 9 (package-provided) and Windows Desktop 9
Product Versions
.NET 9 (package-provided)
Windows Desktop 9

TransformVectors(ReadOnlySpan<PointF>)

Source:
Matrix.cs
Source:
Matrix.cs
Source:
Matrix.cs

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

C#
public void TransformVectors(scoped ReadOnlySpan<System.Drawing.PointF> pts);

Parameters

pts
ReadOnlySpan<PointF>

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

Applies to

.NET 9 (package-provided) and Windows Desktop 9
Product Versions
.NET 9 (package-provided)
Windows Desktop 9