Partilhar via


Representação de matriz de transformações

An m×n matriz é um conjunto de números organizados em m linhas e n colunas. A ilustração a seguir mostra várias matrizes.

Você pode adicionar duas matrizes do mesmo dimensionar, adicionando elementos individuais.A ilustração a seguir mostra dois exemplos de adição de matriz.

An m×n matriz pode ser multiplicado por um n×p matriz e o resultado é um m×p matriz. O número de colunas da primeira matriz deve ser o mesmo sistema autônomo o número de linhas na segunda.Por exemplo, uma matriz de 4 × 2 pode ser multiplicada por matriz 2 × 3 para produzir uma matriz de 4 × 3.

Pontos no plano e linhas e colunas de uma matriz podem ser pensados sistema autônomo vetores.Por exemplo, (2, 5) é um vetor com dois componentes e (3, 7, 1) é um vetor com três componentes.O produto de ponto de dois vetores é definido da seguinte forma:

b) (• (c, d)) a, = ac + bd

c) (a, b, • (d, e, f) = ad + ser + cf

Por exemplo, o produto de ponto de (2, 3) e (5, 4) é (2)(5) + (3)(4) = 22.O produto ponto (2, 5, 1) e (4, 3, 1) é (2)(4) + (5)(3) + (1)(1) = 24.Observe que o produto de ponto de dois vetores é um número, e não outro vetor.Observe também que você pode calcular o produto ponto somente se dois vetores tem o mesmo número de componentes.

A(i, j) permitem que seja a entrada na matriz A na linha i e coluna jth.Por exemplo A(3, 2) é a entrada na matriz A na linha 3 º e a coluna 2.Suponha que A, B e C são as matrizes e AB = C.sistema autônomo entradas de C são calculadas da seguinte maneira:

C (i, j) = (linha i da) • (coluna j de B)

A ilustração a seguir mostra vários exemplos de multiplicação de matriz.

Se você acha de um ponto em um plano sistema autônomo uma matriz 2 x 1, você pode transformar esse ponto multiplicando-lo por uma matriz 2 x 2.A ilustração a seguir mostra várias transformações aplicadas ao ponto (2, 1).

Todas as transformações mostradas na figura anterior são transformações lineares.Determinadas outras transformações, sistema autônomo conversão, não são lineares e não podem ser expresso sistema autônomo a multiplicação, uma matriz 2 x 2.Suponha que você deseja começar com o ponto (2, 1), gire-a 90 graus, traduzi-la 3 unidades na direção x e traduzi-la 4 unidades na direção y.Você pode fazer isso por meio de uma multiplicação de matriz seguida de adição de uma matriz.

Uma transformação linear (multiplicação, uma matriz 2 x 2) seguida de uma tradução (adição de uma matriz 2 x 1) é chamada de uma transformação afim.Uma alternativa ao armazenamento de uma transformação afim em um emparelhar de matrizes (um para a parte linear) e outro para a tradução é armazenar a transformação inteira em uma matriz 3 × 3.Para fazer esse trabalho, um ponto em que o plano deve ser armazenado em uma matriz de 1 × 3 com uma coordenada 3ª fictícia.Técnica comum é fazer todas as coordenadas 3ª igual a 1.Por exemplo, o ponto (2, 1) é representado por matriz de [2 1 1].A ilustração a seguir mostra uma transformação afim (Girar 90 graus; traduzir 3 unidades na direção x, 4 unidades na direção y) expresso sistema autônomo a multiplicação, uma matriz única 3 × 3.

No exemplo anterior, o ponto (2, 1) é mapeado para o ponto (2, 6).Observe que a terceira coluna da matriz 3 × 3 contém os números 0, 0, 1.Isso será sempre o caso para a matriz de 3 × 3 de uma transformação afim.Os números importantes são os seis números nas colunas 1 e 2.A parte superior esquerda 2 × 2 da matriz representa a parte linear da transformação, e as duas primeiras entradas na linha de 3ª representam a tradução.

In GDI+ Você pode armazenar uma transformação afim em um Matrix objeto. Como a terceira coluna de uma matriz que representa uma transformação afim sempre (0, 0, 1), você especificar somente os seis números nas duas primeiras colunas ao construir um Matrix objeto. A demonstrativo Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constrói a matriz mostrada na figura anterior.

Transformações compostas

Uma transformação composta é uma sequência de transformações, um seguido de Outros.Considere as matrizes e transformações na lista a seguir:

A matriz

Girar 90 graus

Matriz B

Escala por um fator de 2 na direção x

Matriz C

Traduzir 3 unidades na direção y

Se podemos iniciar com o ponto (2, 1) – representado por matriz de [2 1 1] — e multiplique pelo valor A, B, em seguida, em seguida, C, o ponto (2, 1) será passam por três transformações na ordem listada.

[2 1 1]ABC = [-2 5 1]

Em vez de armazenar as três partes da transformação composta em três matrizes separadas, multiplique A, B e C juntos para obter uma matriz 3 × 3 único que armazena a transformação composta inteira.Suponha que ABC = D.Em seguida, um ponto multiplicado por D fornece o mesmo resultado sistema autônomo um ponto multiplicado por A, B, em seguida, em seguida, C.

[2 1 1]D = [-2 5 1]

A ilustração a seguir mostra as matrizes A, B, C e D.

O fato de que a matriz de uma transformação composta pode ser formada pela multiplicação de matrizes de transformação individuais significa que qualquer sequência de transformações afim pode ser armazenada em um único Matrix objeto.

Cuidado:

A ordem de uma transformação composta é importante.Em geral, girar, e, em seguida, dimensionar e, em seguida, convertem é não o mesmo sistema autônomo escala, em seguida, girar e converter.Da mesma forma, a ordem de multiplicação de matriz é importante.Em geral, ABC não é o mesmo OAT.

The Matrix classe fornece vários métodos para a criação de uma transformação composta: Multiply, Rotate, RotateAt, Scale, Shear, e Translate. O exemplo a seguir cria a matriz de uma transformação composta que gira 30 graus, primeiro e, em seguida, ajusta por um fator de 2 na direção y e, em seguida, converte 5 unidades na direção x:

Dim myMatrix As New Matrix()
myMatrix.Rotate(30)
myMatrix.Scale(1, 2, MatrixOrder.Append)
myMatrix.Translate(5, 0, MatrixOrder.Append)

Matrix myMatrix = new Matrix();
myMatrix.Rotate(30);
myMatrix.Scale(1, 2, MatrixOrder.Append);
myMatrix.Translate(5, 0, MatrixOrder.Append);

A ilustração a seguir mostra a matriz.

Consulte também

Outros recursos

Sistemas de coordenada e transformações

Usando transformações no gerenciado GDI +