Você está na página 1de 16

Todos ns estudamos matrizes no segundo grau.

Entretanto, a maioria de ns faz isso se perguntando qual a sua utilidade, e o porqu de tantos clculos. O que muitos no sabem que so justamente as matrizes as grandes responsveis por todos os grficos 3D dos jogos atuais. Que tal ler esse artigo e descobrir o como?

Coordenadas cartesianas
Voc deve estar lembrado que sempre que desenhamos coisas usamos para isso um sistema coordenado, chamado de coordenadas cartesianas. Ele foi inventado por Renatus Cartesius, mais conhecido no Brasil como Ren Descartes. Nesse sistema, cada ponto representado em 2D por um par de valores, indicando sua linha e sua coluna:

Voc pode imaginar que embaixo desse sistema de coordenadas hipottico, est uma folha de papel, ou mesmo o monitor do seu computador. Tanto faz. O importante sabermos que, as coordenadas exatas dos pontos so apenas uma referncia, uma conveno. Por exemplo. Digamos que giraremos a folha de papel em 20 o no sentido horrio, e ento iremos colocla por cima da folha anterior, e redesenhar o carro, exatamente no mesmo local, por cima de sua sombra. Obteramos a seguinte imagem:

Sem dvida, no houve qualquer modificao no desenho do carro, ele est exatamente no mesmo local. Entretanto, no novo sistema de coordenadas, ao ajeitarmos a folha, esse carro pareceria ter girado 20 o no sentido anti-horrio, veja:

O que fizemos no final, ajeitar a folha, um processo chamado de transformao de coordenadas. Simplesmente pegamos as coordenadas que estavam num sistema (o da folha girada) e as transformamos elas num outro sistema (o da folha normal). E o que matrizes tm a ver com tudo isso? Tudo.

Representao matemtica do sistema de coordenadas


Considere um sistema de coordenadas qualquer, ainda com duas dimenses, e que sobre ele utilizemos vrios pontos pra traar uma figura.

Sabemos que o ponto superior direito dessa figura deve ter uma coordenada positiva de grande valor, como (100,120) ou (10,12) e o seu valor exato no nos importa agora. A figura por ter sido construda a, segue uma regra: ela proporcional a esse sistema. Ou seja, se a figura tem 5cm de largura e 6cm de altura, e a unidade desse sistema for o milmetro, ento, o canto superior direito dessa figura ser (50,60)mm. Agora, imaginemos os eixos coordenados dessa figura como dois vetores, chamados vetores de base e, como seu tamanho, atribuiremos o valor um. Novamente, o tamanho os pontos da figura no importam, e sim o fato deles serem equivalentes de 1:1 com esse nosso eixo:

Vamos escrever cada um desses valores em uma tabelinha?

Ordenadas (x) Abscissas (y)

Note como os valores, destacados com cores, foram transportados para as colunas da tabelinha. Se retirarmos os ttulos, acabaremos com uma matriz que representa esse nosso sistema de coordenadas.

Se voc lembrar-se das suas aulas do segundo grau, se lembrar que esta a matriz identidade. Ela tem uma propriedade interessante: qualquer matriz multiplicada pela identidade, no altera seu valor. Ou seja, como se essa matriz representasse o nmero um numa multiplicao. Como sabemos, qualquer coisa multiplicada por um no altera seu valor. Procure se lembrar dessa informao. Ela ser importante em breve.

Vetores e matrizes
Voc deve se lembrar que vetores podem representar pontos. No se lembra? Ento confira rapidamente nosso artigo sobre vetores. Por exemplo, o ponto do canto superior direito daquela figura que no exemplo calculamos ser (50,60), poderia ser representado pelo seguinte vetor:

O que muitos no sabem, que esse vetor pode ser representado como uma matriz de uma linha, e duas colunas, como essa aqui:

Ou mesmo como uma matriz de uma nica coluna e duas linhas, como essa: transposta: [50 60]T.

Como a notao de

coluna difcil ocupa muito espao escrita, podemos usar a notao de linha, atravs da matriz

Voc deve estar se perguntando. E da? Se voc ainda no reparou, uma vez que um vetor representado por uma matriz, isso tambm significa que ele pode ser multiplicado por uma matriz. E essa multiplicao permite-nos transformar um vetor que est num sistema de coordenadas qualquer, em um vetor em outro sistema. Usar linhas ou colunas tem uma implicao importante: Matrizes linhas representam o sistema de coordenadas da mo esquerda. Nele, as funes de rotao funcionam no sentido horrio, e as transformaes ocorrero na ordem em que so multiplicadas. Na matriz coluna, as rotaes ocorrem em sentido anti-horrio, e as transformaes ocorrem em ordem inversa da multiplicao. Utilizaremos nessa srie de artigos as matrizes colunas, pois so padro em muitas APIs e livros de computao grfica, por serem adotadas na OpenGL. J as matrizes linha so comumente usadas no DirectX, no toa que esto presentes em nossos artigos de XNA e shaders.

Multiplicao de matrizes
Antes de continuarmos, vamos lembrar como se d a multiplicao de matrizes. Ao multiplicar duas matrizes A e B, calculamos cada elemento Cij (onde i a linha e j a coluna) usando de um processo simples:

Na matriz A, pegamos os elementos da linha i, que queremos calcular; Na matriz B, pegamos os elementos da coluna j, que queremos calcular; Ento, multiplicamos esses elementos entre si, e somamos os seus produtos. Note que para que essa multiplicao seja possvel, o nmero de colunas de A, deve ser exatamente igual ao nmero de linhas de B.

Ainda perdido? Veja abaixo como calculamos o elemento c24:

Se voc como eu sempre se perde nesses clculos. Eis uma forma mais grfica de representar: desenhe a matriz C, e sobre ela a matriz B e a sua esquerda a matriz A. Os elementos usados para calcular um valor em C estaro na mesma linha em A, e na mesma coluna em B, observe:

Agora que revisamos, vamos voltar ao tema.

Transformaes lineares
Escala
Podemos usar matrizes para representar outros eixos coordenados, diferentes do eixo de base. Basta, para isso, imaginarmos como esse eixo seria. Por exemplo, vamos supor que queiramos ampliar uma imagem em duas vezes. Isso significa que queremos que seu eixo de base seja duas vezes maior que nosso prprio eixo, certo?

Portanto, usando as propores do segundo eixo como uma matriz, teramos:

Com essa matriz, podemos transformar qualquer ponto do sistema de base, num ponto do sistema escalado. Para isso, a matriz de escala e multiplicar pelo vetor que queremos ampliar. Tomemos como exemplo o nosso vetor [50 60], citado anteriormente:

No surpreendentemente, os pontos dobraram de valor. Para ampliar uma figura inteira, multiplicaramos o vetor que representa cada um de seus pontos. Se voc est achando que muito trabalho para pouco resultado, continue lendo o artigo.

Rotao
Alterar o tamanho no a nica coisa que podemos fazer com transformaes lineares. O que

aconteceria se no lugar da matriz Veja um eixo sobre o outro:

usssemos a matriz

Note que agora no s alteramos o tamanho da imagem, como tambm alteramos a inclinao dos eixos. Como conseqncia, a transformao final tambm ser inclinada (nesse caso, em 26 o).

Se lembrarmos da formula sobre como criar um vetor baseado num ngulo, poderemos facilmente chegar a uma matriz, que faz uma rotao qualquer. Se voc no se lembra, criamos um vetor de tamanho t, baseado num ngulo com a funo: ?

1 2 3 4 5 6

Vector2D Vector2D::bySizeAndAngle(float size, float angle) { return Vector2D( cos(angle) * size, sin(angle) * size); }

Ou seja, equivalente formula:

Se na hora de montar nosso novo sistema coordenado esse for o vetor de um dos eixos, ento, seu vetor perpendicular a ele, ser o vetor do outro eixo. H uma regra simples para achar um vetor perpendicular. Basta inverter a posio dos dois valores, e o sinal do de um deles. Por exemplo, se o vetor em questo (x,y) seu perpendicular ser (-y, x). Dessa forma, como queremos alterar apenas o ngulo, teremos t = 1, e formamos seguinte sistema em azul, sobre nosso sistema base, em cinza:

E com isso, podemos deduzir a matriz de rotao genrica, que :

Repare bem que a primeira linha dessa matriz exatamente a frmula do mtodo Vector2D::bySizeAndAngle. E note que a segunda, nada mais que seu vetor perpendicular. Assim, se tivermos um vetor (x,y) qualquer, sua rotao ser definida por:

A frmula acima te causa arrepios? D uma olhada no mtodo rotate da classe Vector2D. Reconhece essa frmula? ?

1 2 3 4 5 6 7 8 9 10 11 12 13

Vector2D& Vector2D::rotate(float angle) { float s = sin(angle); float c = cos(angle);

float newX = x * c - y * s; float newY = x * s + y * c;

x = newX; y = newY;

return *this;

Transformaes combinadas
Um detalhe interessante. Voc pode ter notado que ambas as matrizes de transformao podem ser multiplicadas umas pelas outras. Porm, essa operao faria sentido? O que ocorreria se multiplicssemos uma matriz por outra? A resposta que obteramos uma terceira matriz que realiza as duas operaes ao mesmo tempo. Se isso no parece muito interessante, vamos calcular um pouco. Suponha que voc tenha uma figura formada por 2000 pontos. Se voc aplicar individualmente a rotao e a escala, ter feito 4000 operaes (2000 rotaes e 2000 escalas). Porm, se voc primeiro multiplicar as matrizes, far ao final apenas 2001 operaes: a primeira ser a multiplicao da matriz de rotao R, pela matriz de escala E, obtendo a matriz composta C. E em seguida, 2000 multiplicaes dos vetores dos pontos por C. Ou seja, voc pode ter dezenas de transformaes, que elas impactaro muito pouco no tempo total de clculo. Um detalhe importante: Lembre-se que a multiplicao de matrizes no comutativa. Portanto, a ordem que a multiplicao dessas matrizes ocorre afeta o resultado. Veremos exemplos disso no prximo artigo.

Concluindo
Nesse artigo, vimos que matrizes representam um papel importante na computao grfica. Elas so usadas para transformar coordenadas de um sistema qualquer em outro. No artigo, vimos s transformaes lineares, que so capazes de fazer rotao e escala em qualquer eixo. Vimos tambm que matrizes graficamente podem representar um sistema de coordenadas, proporcional a outro sistema qualquer, chamado de sistema base. E, principalmente, vimos como entender essas matrizes de maneira grfica. No prximo artigo, abordaremos tambm as transformaes afins ( AffineTransforms), que acrescentam a operao de afastamento (translao).

Matriz de rotao
Origem: Wikipdia, a enciclopdia livre. Ir para: navegao, pesquisa

Rotao e pseudorrotao de um vetor no espao bidimensional. A rotao preserva a norma (comprimento) do vetor, a pseudorrotao no. A rotao representada por uma matriz unitria, a matriz de rotao. Uma pseudorrotao representada por uma matriz no unitria.

Interpretao da matriz de rotao como determinante de uma mudana de referencial. Na figura o vetor (preto, ao centro) tem coordenadas distintas no sistema XY (vermelho) e no sistema X'Y' (preto) - que diverge do sistema inicial por um ngulo . Conhecido matriz (ver texto) permite o clculo de . ,a

Uma matriz de rotao uma matriz quadrada que, quando aplicada sobre a representao matemtica de vetor - a matriz coluna - tem o efeito de mudar a direo do vetor por ela representado mas no a sua magnitude; fazendo-o assim fisicamente revolver em torno de um eixo de rotao definido pelos elementos da matriz; por um valor angular tambm por eles especificado. O resultado da operao uma segunda matriz coluna que encerra as coordenadas do vetor resultante da rotao Ref. 1 . Matrizes de rotao so unitrias e no alteram a norma do vetor. Se uma matriz no estiver contudo normalizada, essa pode, alm de rotacionar o vetor, tambm afetar seu mdulo. Embora essa matrizes tambm impliquem rotaes (ou melhor, pseudorrotaes), o uso de matrizes no normalizadas a fim de representar rotaes puras contudo coibido ao exigir-se a unitariedade da matriz de rotao. A rotao de um vetor implica na modificao de suas projees sobre os eixos coordenados, e conforme apresentada d-se em um sistema de coordenadas especfico e nico (figura esquerda). A situao fsica associada pode contudo ser igualmente compreendida no dessa forma; mas sim como uma mudana de referencial estabelecida

entre dois sistemas de coordenadas com origens comuns, mas que tenham seus eixos coordenados no coincidentes; via diferenas providas por uma rotao em torno do mesmo eixo de rotao, e pelo mesmo valor angular, antes associados rotao do vetor. A rotao do eixos coordenados feita contudo em sentido contrrio ao sentido de rotao do vetor na primeira interpretao. Nesse segundo cenrio (figura acima, direita) o vetor permanece imvel no espao, e o sistema de coordenadas que gira Ref. 1 . Frente ultima interpretao, a matriz de rotao entendida como uma matriz de mudana de referencial entre dois referenciais ortonormais que, embora no transladem entre si, giram um em relao ao outro. O uso de uma ou outra interpretao facultativo, sendo para todos os efeitos equivalentes.

ndice
[esconder]

1 Consideraes iniciais 2 Propriedades 3 Duas dimenses 4 Trs dimenses 5 Ver tambm 6 Notas 7 Referncias 8 Ligaes externas

Consideraes iniciais[editar]

Imagem de um crnio em rotao (clique sobre a figura). Em vermelho, a mandbula. Imagens como essas so produzidas em programas que implementam matrizes de rotao em seus algoritmos.

As matrizes de rotao buscam em princpio representar, em linguagem matemtica, operaes fsicas reais associadas s rotaes de objetos, geralmente extensos e slidos, em um dado espao dimensional, geralmente o espao tridimensional. Assumindo-se, em uma viso ativa, um objeto tridimensional em rotao conforme observado a partir de um referencial fixo, inercial, com origem e sistema de coordenados definidos segundo um sistema cartesiano dextrogiro ortonormal, todas as possveis rotaes pelo corpo fisicamente implementveis integram o que se designa normalmente por rotaes prprias. Qualquer rotao prpria factualmente implementvel pelo objeto em questo. Matematicamente possvel, contudo, implementar-se uma "viso especular" de tais rotaes, propriamente falando uma inverso; o que fisicamente consistiria em algo parecido a, partindo-se do objeto real, implementar-se uma operao de rotao prpria, impondo-se agora contudo que o observador visualize a configurao final do objeto no diretamente mas sim atravs de um espelho, fazendo-o de forma a situar os reais pontos em observao sempre s suas costas. Todas as coordenadas de um dado ponto em observao aparecem, assim, invertidas (com sinais negativos justapostos) na situao final; sendo qualquer ponto visualizado 180o aqum de sua real posio em relao a origem. Uma operao de rotao seguida de inverso no fisicamente implementvel pelo objeto em virtude da quebra de quiralidade diretamente envolvida na transformao de inverso. A mo direita nunca pode ser na prtica rotacionada - seja qual for a rotao fisicamente implementvel pensada - de forma a sobrepor-se precisamente mo esquerda, pois essa corresponde sua reflexo especular. Rotaes seguidas de inverso so conhecidas como rotaes imprprias; e no so fisicamente implementveis mediante rotaes do objeto apenas. Matrizes que representam rotaes imprprias so facilmente identificveis pois implicam, no sistema de coordenadas dextrogiro previamente estabelecido, matrizes com determinantes cujos sinais so sempre o negativo (-1) das matrizes que representam as rotaes prprias (+1). Rotaes imprprias so tambm descritas por matrizes que, por muitos autores, so tambm chamadas matrizes de rotao. Contudo a expresso "matriz de rotao" implica, para a maioria dos autores, apenas as matrizes que representam rotaes prprias; e nesses termos que se define, aparte excees explcitas, uma matriz de rotaco nesse artigo. Matrizes de rotao encontram enorme aplicao na Fsica, fazendo-se sempre presentes na descrio da dinmica de corpos extensos, da matria e mesmo da energia; em engenharia; em qumica, e em qualquer rea onde a representao de algum objeto fsico se faa necessria. Desempenha importante papel tambm na rea de informtica, sobretudo na elaboraco de programas conhecidos genericamente pelas siglas CADs, CNCs, e outros. Particularmente na rea de multimdia o uso das matrizes de rotao faz-se de extrema importncia, sendo nesse caso tambm muito teis as matrizes que representam rotao imprprias. Certamente os que possuem em seu computador uma placa de tv j viram, entre as opes de configurao do programa de controle, a opo "espelhar imagem"; que permite, com um clicar de boto, a inverso da imagem gerada na tela do monitor.

Propriedades[editar]

Projeo no espao tridimensional de uma rotao simples de um objeto no espao quadridimensional. A dimensionalidade de uma matriz de rotao no precisa, matematicamente, ater-se s trs dimenses espaciais conhecidas.

Em se tratando de rotaes prprias no espao tridimensional, verifica-se que:

uma matriz de rotao se e somente se

for ortonormal.

ortonormal se o conjunto de seus vetores-coluna (e por tal o conjunto de seus autovetores) formar uma base ortonormal de ; ou seja, se os produtos escalares entre os vetores-coluna da matriz, tomados dois a dois, resultarem todos em zero (ortogonalidade); e o produto escalar de qualquer dos vetores-coluna com ele mesmo for unitrio (normalizao).

Como se trabalha no espao dos reais, os elementos da matriz de rotao so tambm reais. A matriz que representa uma sequncia de rotaes iguala-se ao produto das matrizes que representam as sucessivas etapas, na ordem adequada; e tambm uma matriz de rotao (Teorema de Euler). Uma rotao "A" posteriormente seguida por uma rotao "B" implica:

Rotaes finitas no so comutativas, e assim tambm no o o produto de matrizes de rotao:

A inversa da matriz de rotao sua transposta:

; onde

a matriz identidade Ref. 1 .

O trao de uma matriz de rotao funo do ngulo de rotao a ela associado, e iguala-se soma de seus autovalores. No espao tridimensional:
Ref. 1

No espao bidimensional:

O determinante de uma matriz de rotao igual unidade:

As operaces representadas pelas matrizes de rotao permitem associ-las a um grupo de simetrias, o grupo de simetrias SO(n), n correspondendo dimenso; SO(3) no caso tridimensional. Admitida a incluso das matrizes que representam rotaes imprprias (determinante = -1), tal grupo de matrizes formam uma representao do grupo de simetrias O(3). O "S" no primeiro grupo, SO(n), representa pois uma parte especial (do ingls "special") - um "subgrupo" - do grupo O(n).

Duas dimenses[editar]
Em duas dimenses, a rotao pode ser definida por um nico ngulo, . Por conveno, ngulos positivos representam rotao dos vetores no sentido horrio, ou dos eixos coordenados no sentido anti-horrio Ref. 2 Ref. 1 Nota 1 . O eixo de rotao nesse caso (o eixo Z) reside fora do espao em considerao.

A matriz para rotacionar um vetor coluna sobre a origem a fim de se obter

em coordenadas cartesianas (ver figura) :

Ref. 2 Ref. 1

de forma que:

Trs dimenses[editar]

As matrizes de rotao so importantes no estudo da dinmica de corpos rgidos extensos.

Em trs dimenses, uma rotao pode ser univocamente definida por trs ngulos, sendo geralmente utilizados os trs ngulos de Euler, . De forma alternativa e equivalente, em acordo com o Teorema de Euler, uma rotao pode tambm ser definida por um nico ngulo de rotao em torno de um eixo de rotao especificado por um vetor unitrio, , vetor que, alm do eixo, tambm especifica, mediante a regra da mo direita e a convenco de sinais para os ngulos aqui adotada, o sentido da rotao dos eixos coordenados Nota 1 . Se a representao der-se mediante os ngulos de Euler na conveno X - que implica trs rotaes sucessivas; a primeira em torno do eixo Z do sistema de corrdendas inicial (ngulo ); a segunda em torno do eixo X' do sistema resultante da rotao anterior (ngulo ) - eixo esse que define a chamada linha de nodo; e a terceira em torno do eixo Z'" do sistema definido aps a segunda rotao (ngulo ) - a matriz que permite determinar o vetor coluna resultante, em coordenadas cartesianas, escreve-se como o produto das trs matrizes individuais que representam, cada qual, uma das rotaes citadas. Em termos matemticos, , onde:

A matriz completa, resultante da multiplicao das anteriores na ordem apresentada Nota 2 , Ref. 1 :

Em termos do vetor unitrio que define o eixo de rotao no sistema de coordenadas inicial, a matriz que expressa uma rotao do sistema de coordenadas em torno desse vetor em sentido condizente com a regra da mo direita (ou do vetor em sentido contrrio), escreve-se como:

[carece de fontes?]

Na matriz acima, a fim de garantir-se as unitariedades do vetor , deve-se sempre ter, obrigatoriamente:

e da matriz

Comparando-se as duas representaes anteriores, pode mostrar-se que as trs rotaes sucessivas implicadas pelos ngulos de Euler correspondem, ao fim, a uma nica rotao por um ngulo em torno de um nico e adequado eixo de rotao que: tal

Ref. 1

ou, de forma mais explicita:

devendo-se nesse caso escolher o arco entre as possveis solues adequado situao fsica em considerao.

Você também pode gostar