Introdução à Computação Gráfica

Este tópico vai tratar de um assunto muito vasto, muito interessante e muito útil.
Útil em que sentido? Principalmente em desmistificar certos comentários ou certas vozes que dizem que a Algebra Linear "não serve para nada e é demasiado abstracta e formal para se tirar alguma utilidade dela." (dito por pessoal das Engenharias em geral...)
Apesar de não ir aqui provar a utilidade da AL directamente para a Física vou procurar fazê-lo indirectamente através de exemplos de Computação Gráfica
Introdução à Computação Gráfica - Rotações no Plano
A AL é largamente utilizada em n aplicações computacionais usadas em larga escala em Engª. O AUTOCAD recorre à Algebra das matrizes para efectuar rotações a 3D dos modelos lá desenvolvidos.
Apesar de ir apenas fazer isto para uma figura a 2D, pode-se generalizar facilmente para 3D.
Como todos aqui já devem saber, a matriz de rotação é a seguinte:
O que esta matriz faz é rodar uma dada entidade matemática (seja um ponto, um segmento de recta, ou uma figura geométrica) por um ângulo
no sentido contrário ao dos ponteiros dos relógio (counterclockwise).
A matriz é largamente conhecida e divulgada em quase todos os livros de AL ou de aplicações computacionais da álgebra, e pode ser facilmente deduzida a partir de uma rotação do extremo de um segmento de recta no plano (imaginem por ex. a rotação do extremo do segmento de recta que forma o raio de círculo de raio
de um dado ângulo
).
Imaginem então que o segmento de recta acima mencionado forma um dado ângulo por hipótese,
com a horizontal. Assim, as coordenadas do extremo móvel desse mesmo segmento são:

Imaginem então que o ponto roda da sua posição inicial, para uma outra posição, tendo-se "rodado" de um ângulo
. Assim, as novas coordenadas do extremo do segmento de recta são:

Usando as relações trigonométricas:

e

e considerando como
as coordenadas do ponto original e
as coordenadas do ponto rodado, temos após algumas (triviais) manipulações que:

e

A partir das igualdades acima, podemos concluir, tendo algum à-vontade com o produto de matrizes que:
.
Temos então, a matriz de rotação
.
Note-se que a multiplicação matricial efectuada acima é feita na ordem:

pois é esta ordem de multiplicação que assegura que o sentido da rotação é CCW e não o contrário. Caso se efectuasse a multiplicação pela matriz de rotação à direita e sendo agora
e
vectores linha, o sentido da rotação seria horário em vez de anti-horário...
Só para terminar, deixo aqui um exemplo simples (feito em Excel) que ilustra a rotação de um quadrado no plano xoy:

Apesar de o exemplo ser bastante auto-explicativo, nas colunas E e F estão as coordenadas do quadrado fixo, e nas colunas H e I estão as coordenadas do quadrado após sofrerem a transformação (linear) da matriz de rotação.
Parte II - Rotação no espaço
A matriz de rotação que opera sobre um par coordenadas
é a matriz de rotação
que foi apresentada acima.
No entanto, o exemplo apresentado apenas permite compreender a matriz de rotação como sendo uma matriz de transformação, que transforma um vector-coluna de coordenadas, do tipo:
![\left[\begin{array}{c} x \\ y \end{array}\right] \left[\begin{array}{c} x \\ y \end{array}\right]](/phpBB3/latexrender/pictures/2bd15f00155f3bd9f146c06d6eae4582.gif)
em novas coordenas (note-se que as coordenadas dizem-se "novas" pois são coordenadas diferentes das coordenadas acima, pertencendo estas à entidade que está a sofrer a rotação) do tipo:
![\left[\begin{array}{c} x^\prime \\ y^\prime \end{array}\right] \left[\begin{array}{c} x^\prime \\ y^\prime \end{array}\right]](/phpBB3/latexrender/pictures/5faec44039bad1d41c7f7f071e96023c.gif)
Isto é o que preciso compreender sobre a matriz de rotação e é a base para compreender as transformações lineares. Para perceber completamente as transformações lineares, o que se podia fazer era introduzir na representação do referencial com o qual trabalhamos uma nova base, t.q.
, ou seja, usar uma base para trabalhar que não fosse a base canónica, pode ficar como exercicio para quem quiser entender as transformações lineares e valores e vectores próprios, mas isso não vem aqui ao caso...
Um método de computação gráfica muito mais utlizado para além de rodar figuras geométricas é o que consiste em rodar sólidos geométricos ou figuras tridimensionais compostas...Fazendo um paralelismo com a Engª Civil, em AutoCAD, temos de construir soluções estruturais que vão desde simples paredes ou telhados, até pontes, barragens, etc que são soluções bastante mais complexas do ponto de vista estrutural...O método que se segue é o utilizado para realizar rotações e/ou projecções desse mesmo tipo de estruturas.
As matrizes de rotação responsáveis pela rotação de figuras 3D (admite-se a rotação em torno de um ângulo
sobre cada eixo) são três, cada uma responsável pela rotação em torno de um dos eixos coordenados. São nomeadamente, as seguintes:
[*]Rotação 3D em torno do eixo dos xx:
![\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & cos \theta & -sin \theta \\ 0 & sin \theta & cos \theta \end{array} \right] \left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & cos \theta & -sin \theta \\ 0 & sin \theta & cos \theta \end{array} \right]](/phpBB3/latexrender/pictures/8bf0f86e5c3d16036d42904e6175e2eb.gif)
[*]Rotação 3D em torno do eixo dos yy:
![\left[\begin{array}{ccc} cos \theta & 0 & -sin \theta \\ 0 & 1 & 0 \\ sin \theta & 0 & cos \theta \end{array} \right] \left[\begin{array}{ccc} cos \theta & 0 & -sin \theta \\ 0 & 1 & 0 \\ sin \theta & 0 & cos \theta \end{array} \right]](/phpBB3/latexrender/pictures/317c37a06d94a7559149910a5aa13208.gif)
[*]Rotação 3D em torno do eixo dos zz:
![\left[\begin{array}{ccc} cos \theta & -sin \theta & 0 \\ sin \theta & cos \theta & 0 \\ 0 & 0 & 1 \end{array} \right] \left[\begin{array}{ccc} cos \theta & -sin \theta & 0 \\ sin \theta & cos \theta & 0 \\ 0 & 0 & 1 \end{array} \right]](/phpBB3/latexrender/pictures/c0876188d7d46db553c6c1bec534adda.gif)
Sendo
a matriz de rotação 3D em torno do eixo dos xx,
a matriz de rotação em torno do eixo dos yy e
a matriz de rotação 3D em torno do eixo dos zz, se se efectuar a multiplicação destas três matrizes, i.e.:

o que vamos obter, vai ser uma nova matriz que é a matriz (que se pode denotar por
) que nos mostra o que se passa quando a nossa entidade sofre uma rotação que não é linear. (Digo aqui rotação não linear, para me referir a uma rotação que não se dê sobre um dos eixos, mas sim sobre os 3 eixos ao mesmo de tempo de forma não isotrópica [roda-se a entidade de um dado ângulo
segundo o eixo dos xx, de um ângulo
segundo o eixo dos yy e de um ângulo
segundo o eixo dos zz. Ser rodado de forma não isotrópica significa simplesmente que
].
A maneira mais usual de se obter uma rotação que não seja linear, é simples. Basta fazer uma combinação linear de rotações "triviais", para obtermos uma posição muito estranha para a peça que nos propomos rodar.
Para ilustrar melhor todos os conceitos explicados acima, nada melhor do que um exemplo concreto. Considerem então que pretendemos aplicar os conceitos aqui trabalhados à seguinte peça:

Agora, se dermos alguns valores concretos à peça em questão, é possível, representá-la em 3D no Excel!! Aqui a questão é que só podemos ver "de uma só vez" um de 4 alçados possíveis: ou vemos a vista de topo, ou um dos alçados laterais (esquerdo ou direito), ou olhamos para a peça em verdadeira grandeza (de frente) sendo que estas vistas correspondem a projecções nos planos XoY, XoZ ou YoZ respectivamente.
Após manipularmos um pouco a posição inicial da peça, podemos acabar com uma posição parecida com a da figura acima, como se ilustra abaixo:

Esta aplicação é um exemplo muito simples do que é a Computação gráfica e também de um dos (vários!) dominios onde é utilizada.
Este post está completo.
Útil em que sentido? Principalmente em desmistificar certos comentários ou certas vozes que dizem que a Algebra Linear "não serve para nada e é demasiado abstracta e formal para se tirar alguma utilidade dela." (dito por pessoal das Engenharias em geral...)
Apesar de não ir aqui provar a utilidade da AL directamente para a Física vou procurar fazê-lo indirectamente através de exemplos de Computação Gráfica

Introdução à Computação Gráfica - Rotações no Plano
A AL é largamente utilizada em n aplicações computacionais usadas em larga escala em Engª. O AUTOCAD recorre à Algebra das matrizes para efectuar rotações a 3D dos modelos lá desenvolvidos.
Apesar de ir apenas fazer isto para uma figura a 2D, pode-se generalizar facilmente para 3D.
Como todos aqui já devem saber, a matriz de rotação é a seguinte:
![R(\theta) = \left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \\ \end{array} \right] R(\theta) = \left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \\ \end{array} \right]](/phpBB3/latexrender/pictures/d9c95d38f470d7512cf5d2ae3ccd2ee4.gif)
O que esta matriz faz é rodar uma dada entidade matemática (seja um ponto, um segmento de recta, ou uma figura geométrica) por um ângulo

A matriz é largamente conhecida e divulgada em quase todos os livros de AL ou de aplicações computacionais da álgebra, e pode ser facilmente deduzida a partir de uma rotação do extremo de um segmento de recta no plano (imaginem por ex. a rotação do extremo do segmento de recta que forma o raio de círculo de raio


Imaginem então que o segmento de recta acima mencionado forma um dado ângulo por hipótese,


Imaginem então que o ponto roda da sua posição inicial, para uma outra posição, tendo-se "rodado" de um ângulo


Usando as relações trigonométricas:

e

e considerando como



e

A partir das igualdades acima, podemos concluir, tendo algum à-vontade com o produto de matrizes que:
![\left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \\ \end{array} \right] \cdot \left[\begin{array}{c} x & y \end{array} \right] = \left[\begin{array}{c} x^\prime & y^\prime \end{array} \right] \left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \\ \end{array} \right] \cdot \left[\begin{array}{c} x & y \end{array} \right] = \left[\begin{array}{c} x^\prime & y^\prime \end{array} \right]](/phpBB3/latexrender/pictures/15b5d5825d9f6cc389c37295b9e11b21.gif)
Temos então, a matriz de rotação

Note-se que a multiplicação matricial efectuada acima é feita na ordem:

pois é esta ordem de multiplicação que assegura que o sentido da rotação é CCW e não o contrário. Caso se efectuasse a multiplicação pela matriz de rotação à direita e sendo agora


Só para terminar, deixo aqui um exemplo simples (feito em Excel) que ilustra a rotação de um quadrado no plano xoy:

Apesar de o exemplo ser bastante auto-explicativo, nas colunas E e F estão as coordenadas do quadrado fixo, e nas colunas H e I estão as coordenadas do quadrado após sofrerem a transformação (linear) da matriz de rotação.
Parte II - Rotação no espaço
A matriz de rotação que opera sobre um par coordenadas


No entanto, o exemplo apresentado apenas permite compreender a matriz de rotação como sendo uma matriz de transformação, que transforma um vector-coluna de coordenadas, do tipo:
![\left[\begin{array}{c} x \\ y \end{array}\right] \left[\begin{array}{c} x \\ y \end{array}\right]](/phpBB3/latexrender/pictures/2bd15f00155f3bd9f146c06d6eae4582.gif)
em novas coordenas (note-se que as coordenadas dizem-se "novas" pois são coordenadas diferentes das coordenadas acima, pertencendo estas à entidade que está a sofrer a rotação) do tipo:
![\left[\begin{array}{c} x^\prime \\ y^\prime \end{array}\right] \left[\begin{array}{c} x^\prime \\ y^\prime \end{array}\right]](/phpBB3/latexrender/pictures/5faec44039bad1d41c7f7f071e96023c.gif)
Isto é o que preciso compreender sobre a matriz de rotação e é a base para compreender as transformações lineares. Para perceber completamente as transformações lineares, o que se podia fazer era introduzir na representação do referencial com o qual trabalhamos uma nova base, t.q.

Um método de computação gráfica muito mais utlizado para além de rodar figuras geométricas é o que consiste em rodar sólidos geométricos ou figuras tridimensionais compostas...Fazendo um paralelismo com a Engª Civil, em AutoCAD, temos de construir soluções estruturais que vão desde simples paredes ou telhados, até pontes, barragens, etc que são soluções bastante mais complexas do ponto de vista estrutural...O método que se segue é o utilizado para realizar rotações e/ou projecções desse mesmo tipo de estruturas.
As matrizes de rotação responsáveis pela rotação de figuras 3D (admite-se a rotação em torno de um ângulo

[*]Rotação 3D em torno do eixo dos xx:
![\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & cos \theta & -sin \theta \\ 0 & sin \theta & cos \theta \end{array} \right] \left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & cos \theta & -sin \theta \\ 0 & sin \theta & cos \theta \end{array} \right]](/phpBB3/latexrender/pictures/8bf0f86e5c3d16036d42904e6175e2eb.gif)
[*]Rotação 3D em torno do eixo dos yy:
![\left[\begin{array}{ccc} cos \theta & 0 & -sin \theta \\ 0 & 1 & 0 \\ sin \theta & 0 & cos \theta \end{array} \right] \left[\begin{array}{ccc} cos \theta & 0 & -sin \theta \\ 0 & 1 & 0 \\ sin \theta & 0 & cos \theta \end{array} \right]](/phpBB3/latexrender/pictures/317c37a06d94a7559149910a5aa13208.gif)
[*]Rotação 3D em torno do eixo dos zz:
![\left[\begin{array}{ccc} cos \theta & -sin \theta & 0 \\ sin \theta & cos \theta & 0 \\ 0 & 0 & 1 \end{array} \right] \left[\begin{array}{ccc} cos \theta & -sin \theta & 0 \\ sin \theta & cos \theta & 0 \\ 0 & 0 & 1 \end{array} \right]](/phpBB3/latexrender/pictures/c0876188d7d46db553c6c1bec534adda.gif)
Sendo




o que vamos obter, vai ser uma nova matriz que é a matriz (que se pode denotar por





A maneira mais usual de se obter uma rotação que não seja linear, é simples. Basta fazer uma combinação linear de rotações "triviais", para obtermos uma posição muito estranha para a peça que nos propomos rodar.
Para ilustrar melhor todos os conceitos explicados acima, nada melhor do que um exemplo concreto. Considerem então que pretendemos aplicar os conceitos aqui trabalhados à seguinte peça:

Agora, se dermos alguns valores concretos à peça em questão, é possível, representá-la em 3D no Excel!! Aqui a questão é que só podemos ver "de uma só vez" um de 4 alçados possíveis: ou vemos a vista de topo, ou um dos alçados laterais (esquerdo ou direito), ou olhamos para a peça em verdadeira grandeza (de frente) sendo que estas vistas correspondem a projecções nos planos XoY, XoZ ou YoZ respectivamente.
Após manipularmos um pouco a posição inicial da peça, podemos acabar com uma posição parecida com a da figura acima, como se ilustra abaixo:

Esta aplicação é um exemplo muito simples do que é a Computação gráfica e também de um dos (vários!) dominios onde é utilizada.
Este post está completo.
