Ler em inglês

Compartilhar via


Matrix.TransformVectors Método

Definição

Multiplica cada vetor em uma matriz pela matriz. Os elementos de tradução dessa matriz (terceira linha) são ignorados.

Sobrecargas

TransformVectors(Point[])

Aplica apenas os componentes de escala e rotação desse Matrix à matriz de pontos especificada.

TransformVectors(PointF[])

Multiplica cada vetor em uma matriz pela matriz. Os elementos de tradução dessa matriz (terceira linha) são ignorados.

TransformVectors(ReadOnlySpan<Point>)
TransformVectors(ReadOnlySpan<PointF>)

TransformVectors(Point[])

Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs

Aplica apenas os componentes de escala e rotação desse Matrix à matriz de pontos especificada.

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

Parâmetros

pts
Point[]

Uma matriz de estruturas Point que representa os pontos a serem transformados.

Exemplos

O exemplo de código a seguir foi projetado para uso com o Windows Forms e requer PaintEventArgse, um objeto de evento Paint. O código executa as seguintes ações:

  • Cria uma matriz de pontos que formam um retângulo.

  • Desenha essa matriz de pontos para a tela antes de aplicar uma transformação de dimensionamento (o retângulo azul).

  • Cria uma matriz e a dimensiona em 3 no eixo x e 2 no eixo y e a converte em 100 em ambos os eixos.

  • Lista os elementos de matriz para a tela.

  • Aplica essa transformação de matriz à matriz de pontos.

  • Desenha a matriz transformada para a tela (o retângulo vermelho).

Observe que o retângulo vermelho foi dimensionado por um fator de 3 no eixo x e por 2 no eixo y, incluindo o canto superior esquerdo do retângulo (o ponto inicial do retângulo), mas o vetor de tradução (os dois últimos elementos da matriz) é ignorado.

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

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET 6, 7, 8, 9
.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, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

TransformVectors(PointF[])

Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs
Origem:
Matrix.cs

Multiplica cada vetor em uma matriz pela matriz. Os elementos de tradução dessa matriz (terceira linha) são ignorados.

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

Parâmetros

pts
PointF[]

Uma matriz de estruturas Point que representa os pontos a serem transformados.

Exemplos

Para obter um exemplo, consulte TransformVectors(Point[]).

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET 6, 7, 8, 9
.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, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

TransformVectors(ReadOnlySpan<Point>)

Origem:
Matrix.cs
public void TransformVectors (scoped ReadOnlySpan<System.Drawing.Point> pts);

Parâmetros

Aplica-se a

.NET 9 e Windows Desktop 9
Produto Versões
.NET 9
Windows Desktop 9

TransformVectors(ReadOnlySpan<PointF>)

Origem:
Matrix.cs
public void TransformVectors (scoped ReadOnlySpan<System.Drawing.PointF> pts);

Parâmetros

Aplica-se a

.NET 9 e Windows Desktop 9
Produto Versões
.NET 9
Windows Desktop 9