Matriz de transformação - Transformation matrix

Na álgebra linear , as transformações lineares podem ser representadas por matrizes . Se é um mapeamento de transformação linear para e é um vector de coluna com as entradas, em seguida

para alguma matriz , chamada de matriz de transformação de . Observe que possui linhas e colunas, enquanto a transformação é de para . Existem expressões alternativas de matrizes de transformação envolvendo vetores linha que são preferidas por alguns autores.

Usos

As matrizes permitem que transformações lineares arbitrárias sejam exibidas em um formato consistente, adequado para computação. Isso também permite que as transformações sejam compostas facilmente (multiplicando suas matrizes).

As transformações lineares não são as únicas que podem ser representadas por matrizes. Algumas transformações não lineares em um espaço euclidiano n-dimensional R n podem ser representadas como transformações lineares no espaço n + 1-dimensional R n +1 . Isso inclui transformações afins (como tradução ) e transformações projetivas . Por esta razão, matrizes de transformação 4 × 4 são amplamente utilizadas em computação gráfica 3D . Essas matrizes de transformação n + 1-dimensionais são chamadas, dependendo de sua aplicação, matrizes de transformação afins , matrizes de transformação projetiva ou, mais geralmente, matrizes de transformação não linear . Com relação a uma matriz n- dimensional, uma matriz n + 1-dimensional pode ser descrita como uma matriz aumentada .

Nas ciências físicas , uma transformação ativa é aquela que realmente muda a posição física de um sistema e faz sentido mesmo na ausência de um sistema de coordenadas, enquanto uma transformação passiva é uma mudança na descrição de coordenadas do sistema físico ( mudança de base ) A distinção entre transformações ativas e passivas é importante. Por padrão, por transformação , os matemáticos geralmente querem dizer transformações ativas, enquanto os físicos podem significar qualquer uma delas.

Em outras palavras, uma transformação passiva se refere à descrição do mesmo objeto visto de dois quadros de coordenadas diferentes.

Encontrando a matriz de uma transformação

Se houver uma transformação linear na forma funcional, é fácil determinar a matriz de transformação A transformando cada um dos vetores da base padrão por T e , em seguida, inserindo o resultado nas colunas de uma matriz. Em outras palavras,

Por exemplo, a função é uma transformação linear. Aplicar o processo acima (suponha que n = 2 neste caso) revela que

A representação matricial de vetores e operadores depende da base escolhida; uma matriz semelhante resultará de uma base alternativa. No entanto, o método para encontrar os componentes permanece o mesmo.

Para elaborar, o vetor pode ser representado em vetores de base, com coordenadas :

Agora, expresse o resultado da matriz de transformação A sobre , na base dada:

Os elementos da matriz A são determinados para uma determinada base E aplicando A a cada e observando o vetor de resposta

Esta equação define os elementos procurados, , de j coluna -ésimo da matriz Uma .

Eigenbasis e matriz diagonal

No entanto, existe uma base especial para um operador em que os componentes formam uma matriz diagonal e, portanto, a complexidade da multiplicação se reduz a n. Ser diagonal significa que todos os coeficientes, mas são zeros, deixando apenas um termo na soma acima. Os elementos diagonais sobreviventes,, são conhecidos como autovalores e designados com na equação definidora, que se reduz a . A equação resultante é conhecida como equação de autovalor . Os autovetores e autovalores são derivados dele por meio do polinômio característico .

Com diagonalization , é frequentemente possível para traduzir de e para eigenbases.

Exemplos em 2 dimensões

As transformações geométricas mais comuns que mantêm a origem fixa são lineares, incluindo rotação, dimensionamento, cisalhamento, reflexão e projeção ortogonal; se uma transformação afim não é uma tradução pura, ela mantém algum ponto fixo, e esse ponto pode ser escolhido como origem para tornar a transformação linear. Em duas dimensões, as transformações lineares podem ser representadas usando uma matriz de transformação 2 × 2.

Alongamento

Um trecho no plano xy é uma transformação linear que aumenta todas as distâncias em uma direção particular por um fator constante, mas não afeta as distâncias na direção perpendicular. Consideramos apenas alongamentos ao longo dos eixos xey. Um trecho ao longo do eixo x tem a forma x ' = kx ; y ' = y para alguma constante positiva k . (Observe que se k for> 1, então isso realmente é um "alongamento"; se k for <1, ​​é tecnicamente uma "compressão", mas ainda o chamamos de alongamento. Além disso, se k = 1, então a transformação é uma identidade, ou seja, não tem efeito.)

A matriz associada a um alongamento por um fator k ao longo do eixo x é dada por:

Da mesma forma, uma extensão por um fator k ao longo do eixo y tem a forma x ' = x ; y ' = ky , então a matriz associada a esta transformação é

Espremendo

Se os dois trechos acima são combinados com valores recíprocos, a matriz de transformação representa um mapeamento de compressão :

Um quadrado com lados paralelos aos eixos é transformado em um retângulo que tem a mesma área do quadrado. O alongamento e a compressão recíprocos deixam a área invariável.

Rotação

Para rotação por um ângulo θ no sentido horário (direção negativa) sobre a origem, a forma funcional é e . Escrito em forma de matriz, torna-se:

Da mesma forma, para uma rotação no sentido anti-horário (direção positiva) sobre a origem, a forma funcional é e a forma matricial é:

Essas fórmulas pressupõem que o eixo x aponta para a direita e o eixo y aponta para cima.

Os pontos de coordenadas informados pela tela de toque mudam com a rotação do ângulo (0,90,180,270)

http://sh2-git01.asrmicro.com/gerrit/c/crane/gui/lvgl/+/9742

Tosquia

Para mapeamento de cisalhamento (visualmente semelhante à inclinação), existem duas possibilidades.

Um cisalhamento paralelo ao eixo x tem e . Escrito em forma de matriz, torna-se:

Um cisalhamento paralelo ao eixo y tem e , que tem forma de matriz:

Reflexão

Para reflexão sobre uma linha que passa pela origem, seja um vetor na direção da linha. Em seguida, use a matriz de transformação:

Projeção ortogonal

Para projetar um vetor ortogonalmente em uma linha que passa pela origem, seja um vetor na direção da linha. Em seguida, use a matriz de transformação:

Tal como acontece com os reflexos, a projeção ortogonal em uma linha que não passa pela origem é uma transformação afim, não linear.

As projeções paralelas também são transformações lineares e podem ser representadas simplesmente por uma matriz. No entanto, as projeções em perspectiva não são, e para representá-las com uma matriz, podem ser usadas coordenadas homogêneas .

Exemplos em computação gráfica 3D

Rotação

A matriz para girar um ângulo θ em torno de qualquer eixo definido pelo vetor unitário ( l , m , n ) é

Reflexão

Para refletir um ponto através de um plano (que passa pela origem), pode-se usar , onde é a matriz identidade 3 × 3 e é o vetor unitário tridimensional para o vetor normal do plano. Se a norma L2 de , e for unitária, a matriz de transformação pode ser expressa como:

Observe que esses são casos particulares de uma reflexão de Householder em duas ou três dimensões. Uma reflexão sobre uma linha ou plano que não passa pela origem não é uma transformação linear - é uma transformação afim - como uma matriz de transformação afim 4 × 4, pode ser expressa da seguinte forma (assumindo que o normal é um vetor unitário) :

onde para algum ponto do avião, ou equivalentemente ,.

Se o 4º componente do vetor for 0 em vez de 1, então apenas a direção do vetor é refletida e seu comprimento permanece inalterado, como se fosse espelhado através de um plano paralelo que passa pela origem. Esta é uma propriedade útil, pois permite a transformação de vetores posicionais e vetores normais com a mesma matriz. Consulte coordenadas homogêneas e transformações afins abaixo para obter mais explicações.

Compondo e invertendo transformações

Uma das principais motivações para usar matrizes para representar transformações lineares é que as transformações podem então ser facilmente compostas e invertidas.

A composição é realizada pela multiplicação da matriz . Os vetores de linha e coluna são operados por matrizes, linhas à esquerda e colunas à direita. Como o texto é lido da esquerda para a direita, os vetores de coluna são preferidos quando as matrizes de transformação são compostas:

Se A e B são as matrizes de duas transformações lineares, o efeito de primeiro aplicar A e depois B a um vetor coluna é dado por:

Em outras palavras, a matriz da transformação combinada A seguida por B é simplesmente o produto das matrizes individuais.

Quando A é uma matriz invertível, existe uma matriz A −1 que representa uma transformação que "desfaz" A, pois sua composição com A é a matriz identidade . Em algumas aplicações práticas, a inversão pode ser calculada usando algoritmos gerais de inversão ou executando operações inversas (que têm interpretação geométrica óbvia, como girar na direção oposta) e, em seguida, compondo-as na ordem inversa. As matrizes de reflexão são um caso especial porque são suas próprias inversas e não precisam ser calculadas separadamente.

Outros tipos de transformações

Transformações afins

Efeito da aplicação de várias matrizes de transformação afins 2D em um quadrado unitário. Observe que as matrizes de reflexão são casos especiais da matriz de escala.
As transformações afins no plano 2D podem ser realizadas em três dimensões. A translação é feita por cisalhamento paralelo ao plano zy e a rotação é realizada em torno do eixo z.

Para representar transformações afins com matrizes, podemos usar coordenadas homogêneas . Isso significa representar um 2-vetor ( x , y ) como um 3-vetor ( x , y , 1) e da mesma forma para dimensões superiores. Usando este sistema, a tradução pode ser expressa com multiplicação de matrizes. A forma funcional torna-se:

Todas as transformações lineares comuns estão incluídas no conjunto de transformações afins e podem ser descritas como uma forma simplificada de transformações afins. Portanto, qualquer transformação linear também pode ser representada por uma matriz de transformação geral. Este último é obtido expandindo a matriz de transformação linear correspondente por uma linha e coluna, preenchendo o espaço extra com zeros, exceto para o canto inferior direito, que deve ser definido como 1. Por exemplo, a matriz de rotação anti-horário de cima torna-se :

Usando matrizes de transformação contendo coordenadas homogêneas, as traduções tornam-se lineares e, portanto, podem ser perfeitamente mescladas com todos os outros tipos de transformações. A razão é que o plano real é mapeado para o plano w = 1 no espaço projetivo real e, portanto, a tradução no espaço euclidiano real pode ser representada como um cisalhamento no espaço projetivo real. Embora uma tradução seja uma transformação não linear em um espaço euclidiano 2-D ou 3-D descrito por coordenadas cartesianas (ou seja, não pode ser combinada com outras transformações enquanto preserva a comutatividade e outras propriedades), ela se torna , em um 3- Espaço projetivo D ou 4-D descrito por coordenadas homogêneas, uma transformação linear simples (um cisalhamento ).

Mais transformações afins podem ser obtidas pela composição de duas ou mais transformações afins. Por exemplo, dada uma translação T ' com vetor, uma rotação R por um ângulo θ no sentido anti-horário , uma escala S com fatores e uma translação T do vetor, o resultado M de T'RST é:

Ao usar transformações afins, o componente homogêneo de um vetor de coordenadas (normalmente chamado de w ) nunca será alterado. Portanto, pode-se supor com segurança que é sempre 1 e ignorá-lo. No entanto, isso não é verdade ao usar projeções em perspectiva.

Projeção em perspectiva

Comparação dos efeitos da aplicação de matrizes 2D afins e de transformação de perspectiva em um quadrado unitário.

Outro tipo de transformação, importante na computação gráfica 3D , é a projeção em perspectiva . Enquanto as projeções paralelas são usadas para projetar pontos no plano da imagem ao longo de linhas paralelas, a projeção em perspectiva projeta pontos no plano da imagem ao longo de linhas que emanam de um único ponto, denominado centro de projeção. Isso significa que um objeto tem uma projeção menor quando está longe do centro de projeção e uma projeção maior quando está mais próximo (ver também função recíproca ).

A projeção em perspectiva mais simples usa a origem como o centro da projeção e o plano como o plano da imagem. A forma funcional desta transformação é então ; . Podemos expressar isso em coordenadas homogêneas como:

Após realizar a multiplicação da matriz , o componente homogêneo será igual ao valor de e os outros três não serão alterados. Portanto, para mapear de volta ao plano real, devemos realizar a divisão homogênea ou divisão de perspectiva , dividindo cada componente por :

Projeções de perspectiva mais complicadas podem ser compostas combinando-se esta com rotações, escalas, translações e tesouras para mover o plano da imagem e o centro de projeção onde eles forem desejados.

Veja também

Referências

links externos