Matriz de transformação
Na álgebra linear, as transformações lineares podem ser representadas por matrizes. Se é uma transformação linear de para e é um vetor coluna com entradas, então
para alguma matriz de ordem , chamada de matriz de transformação de . Note que tem 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
[editar | editar código-fonte]Matrizes permitem que transformações lineares arbitrárias sejam exibidas em um formato consistente, apropriado para cálculos.[1] Isso também permite que as transformações sejam concatenadas facilmente (fazendo a multiplicação de suas matrizes).
As transformações lineares não são as únicas que podem ser representadas por matrizes. Algumas transformações que são não lineares em um espaço euclidiano n-dimensional Rn podem ser representadas como transformações lineares no espaço n+1-dimensional Rn+1. Isso inclui tanto as transformações afins (como a translação) quanto as transformações projetivas. Por esse motivo, as 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, de matrizes de transformação afins, matrizes de transformação projetivas ou, mais geralmente, matrizes de transformação não lineares. 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 do sistema físico por coordenadas (mudança de base). A distinção entre transformações ativas e passivas é importante. Por padrão, quando a expressão transformação é usada pos matemáticos ela se refere a uma transformação ativa, enquanto que ao ser usada por físicos ela pode se referir a qualquer um dos dois tipos.
Em outras palavras, uma transformação passiva se refere à descrição do mesmo objeto visto de dois sistemas de coordenadas diferentes.
Encontrando a matriz transformação
[editar | editar código-fonte]Dada uma transformação linear na forma de função, é fácil determinar a matriz de transformação A transformando cada um dos vetores da base padrão por T e, então, inserindo o resultado nas colunas de uma matriz. Em outras palavras,
Por exemplo, a função é uma transformação linear. A aplicação do processo acima (supondo que n = 2) mostra 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.
Mais especificamente, o vetor v pode ser representado em termos dos vetores de uma base por meio de coordenadas :
Agora, expressando o resultado da ação da matriz de transformação A sobre , na base dada:
Os elementos da matriz A são determinados em relação a uma certa base E aplicando A em cada , e observando o vetor de resposta
Esta equação define os elementos desejados, , da j-ésima coluna da matriz A.[2]
Base de autovetores e matriz diagonal
[editar | editar código-fonte]Pode existir uma base especial para um operador em relação à qual as componentes formam uma matriz diagonal e, portanto, a complexidade da multiplicação se reduz a n. Ser diagonal significa que todos os coeficientes exceto os 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 característica.[3] Os autovetores e autovalores são derivados dela por meio do polinômio característico.
Com a diagonalização, muitas vezes é possível mudar de e para bases de autovetores.
Exemplos em 2 dimensões
[editar | editar código-fonte]As transformações geométricas mais comuns que mantêm a origem fixa são lineares, incluindo a rotação, dimensionamento, cisalhamento, reflexão e projeção ortogonal; se uma transformação afim não é uma translaçã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.
Dilatação e contração
[editar | editar código-fonte]Uma mudança de escala no plano xy é uma transformação linear que altera todas as distâncias em uma dada direção por um fator constante, mas não afeta as distâncias na direção perpendicular. Apenas consideramos mudanças de escala ao longo dos eixos x e y. Uma mudança de escala ao longo do eixo x tem a forma x' = kx; y' = y para alguma constante k positiva. (Observe que se k for > 1, então essa mudança de escala é uma "dilatação"; se k for < 1, ela é uma "compressão". Além disso, se k = 1, a transformação é uma identidade, ou seja, não tem efeito.)
A matriz associada a uma mudança de escala de fator k ao longo do eixo x é dada por:
Da mesma forma, uma mudança de escala 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 é
Compressão
[editar | editar código-fonte]Se os dois tipos de mudança de escala anteriores forem combinados com valores recíprocos, a matriz de transformação representará um aplicação de compressão:
Um quadrado com lados paralelos aos eixos é transformado em um retângulo que tem a mesma área do quadrado. A dilatação e a contração recíprocos mantêm o valor da área.
Rotação
[editar | editar código-fonte]Para a rotação por um ângulo θ no sentido horário em torno da origem, a forma funcional é dada por e . Em termos matriciais, tem-se: [4]
De forma análoga, para uma rotação no sentido anti-horário em torno da origem, a forma funcional é e , enquanto que a forma matricial é:
Essas fórmulas assumem que o eixo x aponta para a direita e o eixo y aponta para cima.
Cisalhamento
[editar | editar código-fonte]Para a transformação 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 , cuja forma matricial é:
Reflexão
[editar | editar código-fonte]Para a reflexão sobre uma reta que passa pela origem, seja um vetor paralelo à reta. Então, use a matriz de transformação:
Projeção ortogonal
[editar | editar código-fonte]Para projetar um vetor ortogonalmente sobre uma reta que passa pela origem, seja um vetor paralelo à reta. Então use a matriz de transformação:
Como ocorre com as reflexões, a projeção ortogonal sobre 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 matricialmente, podem ser usadas coordenadas homogêneas.
Exemplos em computação gráfica 3D
[editar | editar código-fonte]Rotação
[editar | editar código-fonte]A matriz de rotação de um ângulo θ em torno de um eixo qualquer definido pelo vetor unitário (l, m, n) é[5]
Reflexão
[editar | editar código-fonte]Para refletir um ponto em relação a um plano (que passa pela origem), pode-se usar , em que é a matriz identidade 3x3 e é um vetor unitário tridimensional normal do plano. Se a norma L2 de e é 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 em relação a uma reta 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 4x4, pode ser expressa da seguinte forma (assumindo que o vetor normal é unitário):
em que por algum ponto no plano.
Se o 4º componente do vetor for 0 ao invés de 1, então apenas a direção do vetor é refletida e seu comprimento permanece inalterado, como se fosse espelhado em relação a um plano paralelo que passa pela origem. Esta é uma propriedade útil, pois permite a transformação tanto de vetores de posição quanto de 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
[editar | editar código-fonte]Uma das principais motivações para o uso de 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 matricial. As matrizes agem sobre os vetores linha e coluna, atuando sobre as linhas pela direita e sobre as colunas pela esquerda. Uma vez que o texto é lido da esquerda para a direita, os vetores linha são mais convenientes ao compor as matrizes de transformação:
Se A e B são as matrizes de duas transformações lineares, o efeito de aplicar primeiro A e depois B a um vetor linha x é 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 ação de 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, rotacionar no sentido oposto) e, então, compondo-as na ordem inversa.
Outros tipos de transformações
[editar | editar código-fonte]Transformações afins
[editar | editar código-fonte]Para representar transformações afins por meio de matrizes, podem ser usadas coordenadas homogêneas. Isso significa representar um 2-vetor ( x, y ) como um 3-vetor ( x, y, 1), e de forma análoga para dimensões mais altas. Usando este sistema, a translação pode ser expressa por uma multiplicação matricial. A forma funcional torna-se:
Todas as transformações lineares comuns estão inclusas no conjunto das 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 da transformação linear correspondente em uma linha e coluna, preenchendo-as com zeros, exceto no canto inferior direito, que deve ser definido como 1. Por exemplo, a matriz de rotação no sentido anti-horário de antes torna-se:
Usando matrizes de transformação contendo coordenadas homogêneas, as translações tornam-se linear 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 translação no espaço euclidiano real pode ser representada como um cisalhamento no espaço projetivo real. Embora uma translaçã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 projetivo 3-D ou 4-D descrito por coordenadas homogêneas, uma simples transformação linear (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 θ anti-horário, um dimensionamento S com fatores e uma translação T do vetor o resultado M de T'RST é: [6]
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
[editar | editar código-fonte]Outro tipo de transformação, de importância na computação gráfica 3D, é a projeção em perspectiva. Enquanto as projeções paralelas são usadas para projetar pontos spbre o plano da imagem ao longo de linhas paralelas, a projeção em perspectiva projeta pontos sobre o plano da imagem ao longo de linhas que partem 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 centro de projeção e o plano em como o plano da imagem. Então a forma funcional desta transformação é ; . Podemos expressar isso em coordenadas homogêneas como:
Depois de realizar a multiplicação matricial, o componente homogêneo será igual ao valor de e os outros três não mudarão. Portanto, para mapear de volta para o 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, dimensionamentos, translações e cisalhamentos para mover o plano da imagem e o centro de projeção para onde eles forem desejados.
Veja também
[editar | editar código-fonte]- Projeção em 3D
- Mudança de base
- Retificação de imagem
- Transformação rígida
- Transformação (função)
- Geometria das transformações
Referências
- ↑ Gentle, James E. (2007). «Matrix Transformations and Factorizations». Matrix Algebra: Theory, Computations, and Applications in Statistics. Springer. [S.l.: s.n.] ISBN 9780387708737
- ↑ Nearing, James (2010). «Chapter 7.3 Examples of Operators». Mathematical Tools for Physics. [S.l.: s.n.] ISBN 978-0486482125
- ↑ Nearing, James (2010). «Chapter 7.9: Eigenvalues and Eigenvectors». Mathematical Tools for Physics. [S.l.: s.n.] ISBN 978-0486482125
- ↑ http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-07-dynamics-fall-2009/lecture-notes/MIT16_07F09_Lec03.pdf
- ↑ Szymanski, John E. (1989). Basic Mathematics for Electronic Engineers:Models and Applications. Taylor & Francis. [S.l.: s.n.] ISBN 0278000681
- ↑ Cédric Jules (25 de fevereiro de 2015). «2D transformation matrices baking»
Ligações externas
[editar | editar código-fonte]- The Matrix Page Exemplos práticos em POV-Ray
- Página de referência - Rotação dos eixos
- Calculadora de Transformação Linear
- Applet de transformação - Gere matrizes a partir de transformações 2D e vice-versa.
- Transformação de coordenadas sob rotação em 2D
- Excel Fun - Crie gráficos 3D a partir de uma planilha