Você está na página 1de 76
CAPITULO 2 Meare -14 Geométricas no Plano e no Espaco 2.1 Sistemas de coordenadas 2.1.1. Sistemas de coordenadas cartesianas Sistemas de coordenadas e a Computacao Grafica 2.2.1. Sistema de coordenadas do objeto 2.2.2 Sistema de coordenadas do mundo 2.2.3 Sistema de coordenadas da camera 2.2.4 Sistema de coordenadas normalizado 2.2.5 Sistema de coordenadas do dispositivo 2.3 Escalares, pontos e vetores 2.4 Aritmética de vetores 2.5 Produto interno e produto vetorial 2.6 Matrizes 2.7 Transformacées lineares 2.7.1 Transformacao de escala 2.7.2. Transformagao de rotacdo 2.7.3 Outras transformacoes lineares 2.8 Transformacées afins 2.8.1. Transformacao de translagéo 2.8.2 Coordenadas homogéneas 2.8.3 Combinacdes de transformacoes 2. ib ‘des 2.9 Quatérios — representagao alternativa para rota¢ 2.9.1 Numeros complexos 2.9.2 Quatérnios 2.9.3 Utilizando quatérnios 2.10Camera virtual 2.10.1 Camera como objeto virtual 3D 2.10.2 Projecdo Bis ce virtual (parametros intrinsecos) Este capitulo apresenta conceitos matematicos muito utilizados em Compu- tacao Grafica. Nao ha a intengdo de cobrir tais conceitos em profundidade, tal como apresentados em um curso de Algebra Linear ou de Geometria Analitica, mas sim de fazer a ponte entre a base tedrica e sua aplicabilidade no estudo da Computacao Grafica. 2.1. SISTEMAS DE COORDENADAS A matematica, como qualquer outra linguagem, cria convencoes para que, a partir delas, seja possivel construir formulagdes mais complexas. Na base dos sistemas graficos esta a abstracao de um Sistema de Coordenadas, apresentada a seguir. 2.1.1. Sistemas de Coordenadas Cartesianas Em especial, um Sistema de Coordenadas Cartesianas 2D é definido tragan- do-se no plano duas retas concorrentes, ditas eixos x (eixo das abscissas) e y (eixo das ordenadas). O ponto de intersecao entre as duas retas é chamado de origem do sistema (Figura 2.1). Além disso, uma unidade de medida e um sentindo sao associados a cada eixo. Uma vez estabelecido um Sistema de Coordenadas Cartesianas 2D, um ponto qualquer no plano passa a ser referenciado por um par ordenado (x,y) de ntuimeros reais, dito coordenadas do ponto segundo aquele sistema. FIGURA 2.1. Sistema de Coordenadas Cartesianas 2D. TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO © 31 Para encontrar as coordenadas de um ponto areal P= (xy) em dado Sistema de Coordenadas Cartesianas, devemos: ‘ty * (para encontrar x): tracar uma reta r paralela ao eixo y Passando Teta intercepta o eixo x em um ponto que ¢ associado a um valor mumeie de acordo com a unidade de medida e sentido escolhidos para 9 eixo y. * (Para encontrary): tragar uma reta r paralela a0 €ixo x pasando por» . Teta intercepta o eixo y em um ponto que €associado a um valor Tumi de acordo com a unidade de medida e sentido escolhidos para o cixoy Desta maneira, 0 ponto de origem do sistema € associado as Coordena O = 0,0). Observe que um determinado Sistema de Coordenadas Cartesianas estabelece um reticulado sobre o plano capaz de especificar pontos Nesse plano de maneira tinica por um par de nuimeros reais. De modo equivalent podemos partir de um par de nuimeros para encontrar um ponto em im sistema de coordenadas. Segundo a definicao apresentada, podemos tracar diferentes sistemas de coordenadas para o plano: pela escolha de diferentes pares de retas concorrentes; pela variacdo do sentido associado a cada eixo; e, ainda, pela escolha de diferentes unidades de medida para cada eixo. E comum assumir eixos ortogonais e associd-los a unidades equivalentes, Observe que nao podemos assumir tais caracteristicas para todo sistema de coordenas, pois nao é uma exigéncia de sua definicao, a qual também cobre, por exemplo, a escolha de eixos obliquos. Utilizando dois eixos, é possivel separar 0 plano em quatro quadrantes (Figura 2.2). A separacdo em quadrantes € bastante pratica na simplificagao de alguns algoritmos. Ha casos em que € possivel resolver um problema considerando apenas um determinado quadrante e em um segundo passo estender a solucao criada para os demais quadrantes, tratando as simetrias existentes. Exemplos dessa simplificacao sao apresentados ao longo deste livro. Podemos estender os conceitos apresentados para o espaco (3D). Um Sis tema de Coordenadas Cartesiano 3D é formado pela definicdo de trés retas no espa¢o, concorrentes e nao coplanares, com um ponto de intersecéo et comum, sendo z 0 terceiro eixo. Da-se o nome de origem a tal interse¢ao 1 é associada 4 coordenada O = (0,0,0). A definicao do sistema 3D se complet com a escolha de sentidos e unidades de medida para cada um dos trés eixos E importante observar que, uma vez fixados os eixos x e y, para a into" dugao do terceiro eixo ha duas possibilidades para a escolha de qual sentido apontar 0 eixo Z. Cada opcao dessa escolha produz um sistema de coorde nadas distinto. Portanto, € preciso escolher um dos dois. 32 © COMPUTAGAO GRAFICA - GERACAO DE IMAGENS 2° quadrante 1® quadrante ‘3° quadrante 42 quadrante FIGURA 2.2. Quadrantes definidos por um Sistema de Coordenadas Cartesianas 2D. Para destacar essa distinc4o, as possibilidades recebem o nome de Sis- temas de Coordenadas da Mao Esquerda e Sistemas de Coordenadas da Mao Direita. Isto porque ao apontar o polegar na direc4o positiva de x eo indicador na direcao positiva de y (formando a letra L com esses dedos) o dedo médio aponta da direcdo positiva de z, em direcées opostas nas duas maos. Faca vocé mesmo esses gestos com suas mos para perceber a diferenca entre elas (Figura 2.3). Podemos observar ainda que, agrupando os trés eixos dois a dois obtemos trés planos: o plano x-y, o plano x-z e o plano y-z. Isoladamente, cada um desses planos subdivide o espaco em duas regides, chamadas de semiespagos. Juntos, tais planos subdividem o espaco em oito octantes. Os conceitos de octantes e semiespacos sao explorados na pratica da Computacao Grafica por facilitar a formulacao de alguns algoritmos. Uma vez definido um Sistema de Coordenadas Cartesiano sobre 0 espaco 3D, as coordenadas de um ponto p = (x,y,z) sao encontradas de maneira semelhante ao caso 2D. Para encontrar a coordenada relativa a cada eixo, tragamos um plano no qual p esta contido e que seja paralelo aos outros dois eixos. Logo (Figura 2.4): * (para encontrar x): tragamos um plano paralelo ao plano y-z passando por p. Tal plano cruza o eixo x em um ponto que € associado a um valor numérico de acordo com a unidade e sentido escolhidos para 0 eixo x; TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO « 33 == ey Mao Direita FIGURA 2.3. Regra da mao esquerda e da mao direita. Zz x FIGURA 2.4. Planos definidos pelos eixos do Sistema de Coordenadas em 3D. Le 1S Mao Esquerda 34 © COMPUTACAO GRAFICA ~ GERACAO DE IMAGENS, * (para encontrar y): tragamos um plano paralelo ao plano x-z passando por p. Tal plano cruza o eixo y em um ponto que é associado a um valor numérico de acordo com a unidade e sentido escolhidos para o eixo y; * (para encontrar z): tracamos um plano paralelo ao plano x-y passando por p. Tal plano cruza o eixo z em um ponto que é associado a um valor numérico de acordo com a unidade e sentido escolhidos para o eixo z. Reparem que, assim como no caso 2D, a definicao de um Sistema de Coordenadas Cartesiano no 3D nao exige que os eixos sejam ortogonais entre si, nem que assumam a mesma unidade. Embora seja extremamente comum 0 uso de eixos ortogonais e de mesma unidade de medida, ha casos praticos nos quais é importante compreender outras variagées cobertas pelas definicoes apresentadas, em especial, os casos de eixos obliquos. 2.2. SISTEMAS DE COORDENADAS E A COMPUTACAO GRAFICA A abstracdo matematica dita Sistema de Coordenadas é explorada pela Computacao Grafica como uma ferramenta que permite escolher e alterar a representacao de objetos graficos da maneira que for mais conveniente a cada operacao de processamento visual. Ou seja, dé a liberdade de escolher- mos a partir da tarefa que queremos executar um Sistema de Coordenadas que produza a representacdo que mais facilite tal tarefa. Um exemplo pratico é a definicao de um Sistema de Coordenadas para tarefas de impressao. Assuma o problema de definir margens de impressao em um papel. De acordo com questoes culturais, € comum o uso de diferen- tes unidades de medidas fisicas, como por exemplo: centimetros, milimetros, polegadas, pontos, entre outras. E comum também a adogio de diferentes sentidos para o eixo vertical (para cima ou para baixo) e posicionamentos da origem (cantos, centro do papel). Se extrapolarmos as referéncias ocidentais, € comum, no mundo arabe, a leitura iniciando do lado direito para o lado esquerdo, ou seja, neste caso também a referéncia de sentido do eixo horizontal é invertida se comparar- mos ao uso habitual em nossa cultura, Neste contexto, o dominio da abstracao de Sistemas de Coordenadas é importante para que se possa transitar entre as diferentes convencoes. Ha ainda formulacées em que o tamanho do papel é normalizado, ou seja, trans- formado para uma representacao no intervalo numérico entre 0 e 1. Desta for- ma, obtemos um sistema de representacao do plano desassociado de qualquer unidade de medida fisica, facilitando tarefas como a definicao de margens por proporcées do papel e a conversao entre diferentes formatos de papel na qual se deseja escalar 0 contetido de acordo com as propor¢ées do papel. TRANSFORMAGOES GEOMETRICAS NO PLANO ENO ESPACO 35 Sobre o uso de sistemas de coordenadas em aplicacoes de desenho de ¢ 3D, tais aplicagdes sao decompostas internamente como uma sequencia ¢, tarefas com 0 objetivo de, partindo da definicao de objetos QUE © Compoe ¢ caracterizam a cena 3D, produzir uma imagem 2D. Tal sequenca de Operacdes forma a chamada pipeline grafica, ou pipeline de renderizacao. Mais formalmen, © proceso dito renderizacao de uma cena agrupa diversas transformacies operacées responsaveis pela criagao de uma representagao rasterizada 2D a pany de uma cena 3D. Suas etapas serao discutidas em detalhes ao longo do livro, No intuito de facilitar as tarefas envolvidas no processo de renderizagig de uma cena 3D, é comum a definicdo e uso dos seguintes Sistemas de Coordenadas, chamados de sistemas de referéncia da pipeline grafica: * Sistema de Coordenadas do Objeto * Sistema de Coordenadas do Mundo * Sistema de Coordenadas da Camera * Sistema de Coordenadas de Normalizado * Sistema de Coordenadas do Dispositivo A seguir descrevemos a motivacdo para a representacdo em cada um desses sistemas. 2.2.1. Sistema de Coordenadas do Objeto O padrao de referéncia conhecido como Sistema de Coordenadas do Objeto é também conhecido com os nomes de Sistema de Coordenadas do Modelo ou Local. Tal padrao estabelece uma referencia relativa ao proprio objeto 3D durante sua criag4o (modelagem). O designer, modelador ou programador 3D € livre para escolher a origem desse sistema de coordenadas local ¢ também, a definicao de seus eixos e unidades de medida associada a cada um. Assim, ele pode criar um modelo se preocupando apenas com o proprio objeto 3D em quest4o, sem necessariamente prever como no futuro sera feita a introducdo desse modelo em um mundo virtual. Neste contexto, N40 é preciso prever, por exemplo, onde o objeto sera posicionado na cena, ainda as relacoes entre ele e outros possiveis objetos de uma cena. Resumindo, a modelagem dos objetos da cena é feita de maneira 4 Se" isolada por objeto, onde cada objeto criado é associado a um sistema d¢ coordenadas proprio, adotando eixos e unidades da escolha de seu criadot O resultado mais frequentemente produzido Por aplicativos de mode- lagem de objetos 3D € uma malha poligonal que define uma colecao “¢ 36 © COMPUTACAO GRAFICA - GERACAO DE IMAGENS FIGURA 2.5. Exemplos de diferentes Sistemas de Coordenadas para um objeto 3D. vértices, arestas e faces que compoem a superficie de um poliedro. Esse conjunto dito malha é comumente usado para representar um objeto da cena 3D, e os valores das coordenadas dos poligonos que compéem sua superficie usam a referéncia do Sistema de Coordenadas Local adotado. FE comum a definicdo de Sistemas de Coordenadas do Objeto que esta- belecem a origem coincidindo com o centro do modelo, ou, outras vezes, coincidindo com um ponto central a sua base. A Figura 2.5 exemplifica a adocao de diferentes Sistemas de Coordenadas para uma mesma malha. Pode-se perceber 0 posicionamento da origem no centro dos quadris, do joe- lho, ou com a posicao 3D entre seus pés, bem como, diferentes orientacées na definicdo dos eixos coordenados. 2.2.2. Sistema de Coordenadas do Mundo le 2D ou 3D, € formado pela composicao de objetos posicionados e ajustados em relacdo a um mundo virtual e em. relacéo uns 40s outros. Utiliza-se um Sistema de Coordenadas dito Global, ou do Mundo, para dar suporte a tal composigao da cena, uma vez que ele estabelece uma base de referéncia unica, ou universal. Um cenério, seja e! TRANSFORMACOES GEOMETRICAS NO PLANO ENO ESPACO * 37 Para inserir um objeto no mundo virtual faz-se necessario transfy, Sua representacdo no Sistema de Coordenadas do Objeto para represents, no Sistema de Coordenadas do Mundo. Durante tal transformacao define. onde no mundo virtual o objeto sera posicionado, qual a sua Orientagag tamanho relativo as unidades de medida estabelecidas pelos eixos do Sig de Coordenadas do Mundo, além de serem possiveis outras transformags. de ajuste do modelo para seu uso naquele cendrio. Uma vez que um objeto € transformado para compor 0 cenario, podem, pensar em uma instanciacao de objetos no mundo virtual por meio da esc. Tha das transformagdes que o configuram naquela composicao. Instancig objetos graficos significa criar e ajustar copias de um mesmo modelo bisicg, Desta forma, a instanciacéo permite que diversas copias de um Mesmo objeto estejam presentes na cena, alterando-se, por exemplo, sua localizacio, orientacdo e escala, mas mantendo sua geometria basica. Em um exemplo simples, podemos imaginar diferentes instanciacdes no mundo virtual para uma mesma malha de um cubo 3D definido em sey Sistema de Coordenadas do Objeto como unitario, com lados alinhados aos eixos e centralizado na origem. Tal cubo pode dar origem a varios objetos instanciados variando-se as transformac6es que o configuram no mundo virtual, como, por exemplo, em diferentes posicdes, tamanhos e orientacées (Figura 2.6). Veremos como realizar tais transformacoes nas proximas secées, 2.2.3. Sistema de Coordenadas da Camera Uma camera virtual define um ponto de vista sob 0 qual a cena sera visuali- zada e com isso cria uma representacdo no sistema de Computacao Grafica para o observador da cena. Tal camera virtual possui uma localizacao¢ FIGURA 2.6. Boneco feito a partir da instanciacao e transformacdo de cubos. 38° COMPUTAGAO GRAFICA ~ GERACAO DE IMAGENS orientacao no Sistema de Coordenadas do Mundo, da mesma forma que os demais objetos que compdem uma cena. Para a formacao da imagem, dentre todos os objetos que compée a cena, apenas um subconjunto é de fato visto pela camera e participa da formacéo da imagem resultante, ou seja, aqueles posicionados no interior do chamado volume de viséo da camera (Figura 2.7). FIGURA 2.7. Volume de visao da camera. Com essa observacdo, um novo sistema de coordenadas é definido para facilitar tarefas como a selecao dos objetos a serem visualizados na imagem ea projecdo da cena 3D em uma imagem 2D. O Sistema de Coordenadas da Camera (também dito: do Olho) estabe- lece uma referéncia com a posi¢aéo da camera tomada como origem desse sistema, alinhando o eixo z com a profundidade da cena observada pela camera, o eixo x apontando para a direita da camera e o eixo y para cima da camera (Figura 2.8). coordenadas do mundg coordenadas da camera FIGURA 2.8. Sistema de Coordenadas da Camera. TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO © 39 Tipicamente, as bibliotecas de programa¢ao de eae Gréfica " mem que os objetos visualizados da cena se encontram sobre o lado Negatiyg do eixo z do Sistema de Coordenadas da Camera (de forma a compor sistema da mao direita). A convencio de observar 0 €1X0 Z negativo pode. transformada para convencées de observacao do eixo z positivo por trang. formagées simples apresentadas nas proximas secdes. 2.2.4. Sistema de Coordenadas Normalizado O volume de visao associado a uma camera é altamente dependente do, Pparametros que definem tal camera e do modelo de projecao adotado (con. forme detalhado no préximo capitulo). Com 0 objetivo de padronizar o volume de viséo em uma representaciy unica, ou seja, independentemente de tais parametros, um novo sistema de coordenadas € criado, e recebe 0 nome de Sistema de Coordenadas Normalizado (ou ainda de Pés-Projecao ou de Recorte). Este sistema € criado mapeando-se o volume de viséo em um cubo nor- malizado, definido pelo intervalo -1 Eem 3D temos: Y= Py =P —Pi=(Xyp Yop Sy“ Cp Ip Rp) < Xo —X pis of pts —Zw? Tal definicao se estende a vetores em um e€spaco de n dimensoes, calculando as diferencas dimensio a dimensao do par de pontos. A ordem importa. Ao trocarmos pi por Pfestamos criando um vetor de mes” ma magnitude e direc4o, mas no sentido o Posto, ou seja, partindo de pf parapi- Para distinguir vetores de pontos ao longo deste livro usaremos a not cao < > ao se tratar de um vetor e () quando Nos referirmos a posi¢oe ou seja, a pontos. Repare que um mesmo vetor pode ser definido pela diferenca ent infinitos pares de pontos cujas diferencas Sao equivalentes (Figura 2.11). A magnitude ou norma de um vetor y= < XY,2> 6a medida de seu com primento e recebe a notacdo lvl. Seu cAlculo € obtido como: nyx> = eae 42 © COMPUTAGAO GRAFICA - GERACAO DE IMAGENS Sgt FIGURA 2.11. Vetores equivalentes. Podemos usar um vetor para deslocar um ponto do espaco para outro ponto somando-se tal vetor ao ponto: P'=P + V= (Xp, ps Xp) FSX Yor Xy> = (Xp + Hy Np ty Zp Fv) Também € valida a operacao de subtrair um vetor de um ponto, pois é equivalente a soma do ponto ao vetor de sentido invertido: p= = V=(Xp, VprXV—S< Kya Yor Xy> = (Xp — Xp Ip yi Zp~ 2) P P 'P P Ha situacdes em que queremos representar um ponto como um vetor € assim poder utilizar as operag6es definidas sobre o conjunto de vetores. Tal vetor recebe o nome de vetor de posicdo e € obtido subtraindo a origem do sistema de coordenadas O = (0,0,0) do ponto que queremos representar. Logo, o ponto p = (x,y,z) € convertido no vetor v por: v= Op=p-O=(X%p, Yp.Zp) — (0,0,0) =< Xp; YpsZp> Tal subtracdo oferece uma base conceitual que permite a transformacao de pontos em vetores, embora a implementacdo propriamente dita do célculo de subtracao de zeros € irrelevante na pratica. De forma andloga, podemos converter um vetor em um ponto (posicao) acrescentando tal vetor a posicao da origem: p=O+v=(0,0,0)+< 2p iy 2 = (Xn YB) Lembre-se que pontos e vetores sao elementos diferentes com proprie- dades diferentes e quando falamos de um vetor de posicao estamos criando uma associacao entre um par de pontos'e 0 vetor, sendo 0 ponto iniciala origem do sistema de coordenadas e 0 ponto final aquele:cujas coordenadas se encontram somando o vetor a origem. TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO * 43 2.4. ARITMETICA DE VETORES ; A seguir, revisamos operacdes aritméticas definidas sobre 0 Conjunto de Vetotes A soma entre pares de vetores resulta em um novo vetor cujas coor, dens, das sao obtidas com a soma das coordenadas correspondentes nos Vetores originais. E definida como (Figura 2.12): FIGURA 2.12. Soma de vetores. Va + Vb = + =< Xa + Xa» Wwa + Yob> vat Zap > e de maneira semelhante a subtracdo pode ser obtida por: Me = SX yar Yvar ya? ~ SX vb: Yb Xv > =< Xia — Xv» Yva — ub» Rva ~Zyb> Podemos multiplicar um vetor porum valor constante, representado por um escalar (Figura 2.13): FIGURA 2.13. Multiplicacdo de um vetor por um escalar. CHV = CHK Xi Yy,Zy> =KCHK)CHY, CH) > Nos casos de valores escalares negativos, o sentido do vetor é invertido pe!4 operacao. Em especial, ao multiplicar um vetor qualquer por -1, obtemos° vetor de mesma direcao e magnitude que o original, mas de sentido opos'® Um vetor-unitario:é um vetor qualquer que possui norma 1. E bas” tante wtil sabermos transformar um yetor qualquer em:um vetor unital? 4 © COMPUTAGAO GRAFICA’~ GERACAO DE IMAGENS. TABELA 2.1 Propriedades da aritmética de vetores Comutativa V+WeWwsey Distributiva a*(v+w)=a*v+a*w (a+) *v=a*v+b*y Associativa u(v+w)=(v+u)+w Identidade Aditiva v+0=O0+v=eVv Identidade Multiplicativa d+vev*t=v Inverso Aditivo v+(-v=0 de maneira a criar uma representacdo normalizada para uma direcao. Tal processo recebe o nome de normalizacao do vetor e pode ser realizado multiplicando-se o vetor pelo escalar I/lvl: A Tabela 2.1 resume propriedades importantes da aritmética de vetores (assumindo u, v e w como vetores, a e b como escalares): 2.5. PRODUTO INTERNO E PRODUTO VETORIAL Ha ainda duas operacoes entre vetores que nao podem faltar no entendimen- to da Computacao Grafica, denominadas produto interno e produto vetorial. O produto interno (Figura 2.14), também chamado produto escalar, é simbolizado pelo operador ponto e produz um valor relacionado ao com- primento dos dois vetores ¢ ao angulo formado entre eles (simbolizado por theta). Pode ser encontrado como: VWEK = Ny Hy + Wy Vw $Zy Fw |*cos(8) = Ilvil.cos 0 Twill FIGURA 2.14. Produto interno. TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO * 45 TABELA 2,2 Propriedades do produto escalar Produto nulo v-0=0 para um vetor qualquer sev - y~ 0 ents v=0 Comutativa viwewev Distributiva u-(VeW)su-VvtU-w (V+W)-usVv-utweu Associativa a*(v-w)=(a*¥)-we=v. oy Ss Produto escalar quadrado viva |v Uma das aplicacées praticas do produto interno € usé-lo para testar s dois vetores sao ortogonais. Observe que quando theta € 90° o produto interno resulta em zero, produzindo um teste simples de ortogonalidade, Ao longo dos capitulos, manipulando a definicao apresentada, usaremos © produto interno para calcular a projecdo de um vetor sobre outro, bem como para encontrar o angulo formado entre dois vetores. A Tabela 2 apresenta propriedades do produto interno (assumindo u, v e w como vetores e a como escalar), O produto vetorial de dois vetores, simbolizado pelo operador X resulta em um terceiro vetor ortogonal aos dois primeiros (Figura 2.15). Este operador atua sobre vetores 3D e pode ser calculado usando-se: US VX WE Kv Sw —2y # Yo By Hy — Ny H yyy Ny H Jy Ty #Xy > = ,j=<0,1,0> ek=<0,0,1 > , podemos calcular o produto vetorial pelo determinante da matriz: i jok vxXwalxXy Wy 2v l= Xw Jw Zw = (yu By EAC Sy HIE IHC, # Vy HR (By # Yo RE= (2G) * Bw) #] Oy #H ERE = Sy Sw — Vy Fwy Zy Ky — Ny * yy Xp * Ny —Yv Ky > O comprimento do vetor resultante, é equivalente a area do paralelogramo formado pelos vetores v e w (Figura 2.15). Assumindo theta como o angulo entre Os vetores originais, ele pode ser encontrado da seguinte forma: Podemos utilizar o produto vetorial, por exemplo, para verificar se dois vetores sao paralelos. Pela definicao anterior, se o produto vetorial é zero entre vetores nao nulos, podemos afirmar que v e w sao paralelos. A Tabe- la 2.3 a seguir apresenta propriedades do produto vetorial. Supondo u, ve w como vetores e a como escalar, temos: Ha ainda as seguintes propriedades entre produtos escalares e vetoriais, que permitem manipulacao de equacées mistas. Podemos reescrever o produto interno de um vetor u com o produto vetorial de vetores v e w como o deter- minante da matriz cujas linhas sao compostas pelas coordenadas de u, v e w: Sue ence u-(vxw)=|x, yy, 2, Xv Iw lw TABELA 2.3 Propriedades do produto vetorial Produto vetorial inverso vXWe-wXxv Maltiplo de escalar por produto vetorial__[a* (vx w) =(a*v) x w=v x (a* w) Distributiva 4 direita ux (v+w)=uxXv+uXxw Distributiva 4 esquerda (V+w) XusvxXutewXu TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO © 47. 4 ‘ to vetorial de Ainda, € posstvel converter 0 calculo do produ io: pe Veto, €m produtos internos e aritmética de vetores como: (vxu)xw=(v-w) eu (vu) Ww 2.6. MATRIZES Uma matriz de dimensao mxn agrupa elementos em uma disposigag Tetan. gular de m linhas e n colunas. Nos casos em que o ntimero de linhas ¢ jgua ao de colunas, chamamos tal matriz de quadrada. Em particular, estamos interessados nas matrizes cujos elementos representam valores reais, Podemos pensar em vetores como um caso particular de matrizes que pos. suem apenas uma dimensao. Um vetor no espaco 3D pode ser Tepresentadg com uma matriz 3 X 1, dito vetor coluna, ou representado por uma matriz 1 X 3 e dito vetor linha. Com essa interpretacdo de vetores como um casp particular de matrizes, as operacées definidas sobre matrizes podem ser aplicadas também a vetores de maneira transparente, usando o mesmo ferramental apresentado a seguir. Uma matriz M pode ser multiplicada por um valor escalar a, operandoa multiplicacao elemento a elemento: a*m, a*m,, axm,,; a*m... axM=la*m,j]=|a*m,, axm,, a*m,, asm... Duas matrizes A e B com as mesmas dimensoes podem ser somadas ot subtraidas e tais operacoes so realizadas elemento a elemento: A+B=[a,,+b,)]= nee be ee 9% 922 423 a..)+!by. by, b,; b... {= thy ath, 3th, a..+b... 42,+boa G2atby ay 54d, 3% ath.) 4g° COMPUTAGAO GRAFICA - GERACAO DE IMAGENS, Gye ace (bee bee F]4o1 G22 G23 a |—|ba, Daa by3 be |= iby a2-b. a 3-b3 a...—b... =|421-by, dy2-by2 d,3-b,3 a...-b... A operacao conhecida como transposta de uma matriz, simbolizada pelo uso de um T superescrito, realiza a troca de posicionamento de seus ele- mentos de maneira que my passa para a posic4o mji aps a operacao. Assim: T 1 4 7 oun Caw ul 1 2 3 aur om > Repare que os elementos my com i = j, chamados elementos da diagonal da matriz, nao sao alterados pela transposta. Matrizes idénticas as suas transpostas sao chamadas de matrizes simétricas. Assumiremos neste livro a representacao de vetores com 0 uso de vetores coluna. Lembre-se dessa premissa ao comparar formulacées de diferentes fontes da literatura. Dados dois vetores u e v, podemos reescrever 0 produto interno entre eles como: uveuly Para que duas matrizes sejam multiplicadas, exige-se que o numero p de colunas da primeira seja igual ao niimero de linhas da segunda. O resultado da multiplicacgdo sera uma matriz com o numero m de linhas da primeira e o numero n de colunas da segunda. Crnxn= Mae A operacao de multiplicacao de matrizes pode ser pensada como a compo- sicdo de produtos internos, onde cada produto interno opera entre uma linha TRANSFORMACOES GEOMETRICAS NO PLANO ENO ESPAGO » 49 da primeira Muatriz ay e uma coluna da segunda bg, €, portanto, Precisen Ser vetores de mesma dimensionalidade (ou seja, ter a mesma Wantidad, de elementos p). AOA 7 S41 adh > ay! Ay ba ayy Ada by n iy Tb, AB=| |+ Ha belay! |*lba bal==| a2! -ba a1"-b, : T 22 bro T . ; ] |? 77] las aby ayy, A operacao de transposta aparece na equacao anterior por assumirmos a notacao de vetores com notacdo de vetores coluna. Podemos observar que o numero de elementos gerados na matriz resultante é o numero de Produtos internos sendo realizado (mxn produtos internos cada um de dimensao p). Lembre-se que a operacao de multiplicacéo de matrizes nao é comu- tativa, ou seja, a ordem importa. Apresentamos, a seguir, um exemplo de multiplicagao de duas matrizes que produzem resultados distintos quando trocadas de ordem: 1 2]. fo 1) [41 AB= * = 3 4} [2.0 8 3 ml olh EE | Logo, embora possamos achar casos em que AB = BA, essa nao é uma propriedade geral da multiplicacao de matrizes, A matriz identidade é uma matriz quadrada contendo 1 nas posicoes da sua diagonal e zero nas demais, e € representada por I. A identidade faz para a multiplicacao de matrizes o papel andlogo a0 do ntimero 1 na multiplicagao de numeros reais, Ao multiplicarmos um numero n qualquer por 1, tal numero nao € alterado. Da mesma forma, uma matriz qualquer multiplicada por uma matriz identidade de dimen sdes apropriadas nao altera a matriz original. Esta propriedade pode set escrita como: AI=IA=A 50 * COMPUTAGAO GRAFICA’~ GERACAO DE IMAGENS Seja n um numero diferente de 0, seu inverso multiplicativo é tal que, quando multiplicado por ele, o resultado € 1. Podemos escrever o inverso de um numero n como n1: 1 ne—=nent=] n A inversa de uma matriz, se existir, faz analogia com a nota¢do do inverso multiplicativo de um numero real ao ser representada pelo superescrito -1, atendendo a propriedade: A*Ats] Essa propriedade permite que a matriz inversa seja interpretada como a matriz que desfaz a operacao aplicada pela original. Porém, lembre-se de que nem todas as matrizes possuem inversa, Jogo, nem.todas as operagoes descritas por uma matriz podem ser desfeitas. Tal propriedade pode ser usada na manipulacao de equacdes que envol- vem multiplicacao de matrizes como na resolucdo de sistemas de equacdes lineares. Suponha que queremos descobrir os valores da matriz X que atendem a equacdo a seguir, na qual as matrizes A e B sao conhecidas: A*X=B Neste caso, encontrando-se a inversa de A podemos reescrever o sistema como: (A) AX =(A7))B (A7 A)X=(A1)B IX=(A7)B X=(A7)B Assim, é possivel encontrar os elementos da matriz X diretamente pelo calculo do produto das matrizes conhecidas (A")B. Ocdlculo de matrizes inversas é geralmente pesado e deve ser evitado sempre que possivel, ou substituido por solugées fechadas conhecidas para determina- dos tipos de matrizes (conforme os exemplos apresentados na proxima se¢ao). A Tabela 2.4 apresenta propriedades uteis para manipulacao de matrizes. A manipulacao de matrizes da suporte as transformacoes lineares, ampla- mente utilizadas em Computacao Grafica (apresentadas naproxima secao). TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPAGO « 51 TABELA 2.4 Propriedades das operacdes com matrizes Adic&o comutativa A+B=B+A Adigao associativa A+(B+Q=(A+B)+C Multipticacao associativa (AB)C = A(BC) Multiplicacao distributiva KSA +B) ako As kB A(B + 0) = AB) + AC (A+ B)C = AB +AC Identidade muttiplicativa A*I=I*A Propriedades da transposta (kA) = (A?) (A+B) =AT+ BP (Ais Propriedades da inversa (AB)* = A Bt Vetores e matrizes, quando pensados sobre 0 ponto de vista da compu. tacao, sao representados por estruturas de dados densas e contiriuas, muito parecidas com’o modelo organizacional da memoria dos computadores, Logo, matrizes se relacionam diretamente com as estruturas conceituais €fisicas de armazenamento, facilitando desde o trabalho dos programadores até a implantacio eficiente de suas operacdes e manipulacoes. Em especial, tal manipulacdo eficiente de operacdes matriciais motivou o desenvolvimen- to e continua sendo um diferencial do hardware de processamento grafico, conhecido como GPU (do inglés Graphics Processing Unit, ou Unidade de Processamento Grafico). 2.7. TRANSFORMACOES LINEARES Para a matematica, uma transformacao T é qualquer funcao f que realiza um mapeamento de um conjunto de entrada, dito dominio, em um conjunto de saida, dito contradominio. Podemos exemplificar com transformagoes associam cada ponto p do plano (dominio) para um novo ponto p’ do plano (contradominio), tal que T: R’- R?. De maneira semelhante, podemos definir transformagées que levam pontos no espaco para o espaco com? T:R?— R°. Entre suas intimeras aplicacées, transformacées permitem mapeat um objeto em outro objeto (Figura: 2.16), Estamos interessados em um subconjunto de transformacoes, classifi” das como transformagées lineares, as quais sio,amplamente utilizadas ™ manipulacao de objetos 2D e 3D. Sao descritas: na forma de composi? lineares, ou seja; utilizando somas e multiplicagses por escalares. 52° COMPUTAGAO GRAFICA'~-GERACAO DE IMAGENS FIGURA 2.16. Transformacées de objetos. Formalmente, uma funcao T € uma transformacao linear se atende para todo vetor u é v: T(u+v)=T(u)+T(v) T(a*v)=a*T(v) As seguintes equacées ilustram um exemplo de transformacao linear T:R*- > R® em pontos p =(x,y,z) para p’ = (x,y,z): x’=—l*x y=34x434y gal¥xtleytlez As transformacées lineares podem ser igualmente representadas por matrizes. O exemplo anterior seria representado como: x] f-1 0.0] [x y' l=] 3.3. 0/4, y z| {1 1 afl Ao observar o exemplo anterior, note que assumimos neste livro 0 uso da Tepresentacao de vetores coluna. Ao comparar com referéncias que assumem Tepresentacdo de vetores linha, a ordem da multiplicacdo deve ser invertida, bem ‘como:a matriz de transformacdo substituida por'sua transposta, ou. seja, de M*v para v*M?. TRANSFORMACOES GEOMETRICAS NO PLANO E'NO ESPACO « 53: Uma vez Tepresentadas como matrizes, n transformacées lineares Ser combinadas e agrupadas fazendo com que um ponto Pseja transforma inicialmente pela matriz Mi, depois pela matriz M2 assim sucessiy, ‘Amen, até a matriz My. Logo, p descrito por um vetor coluna é transformaq tea ado dg direita para a esquerda em: p’=M, *-+-M,*M3* M,* M,* p Em representacoes que utilizam vetores linha, a equacdo passa a sey escrita da esquerda para a direita e pelas matrizes transpostas: p’=p*M]* M3*M3*M]...*MI Aplicar uma transformacdo a uma malha descrevendo um objeto de uma cena nada mais é do que repetir a mesma operacao em cada um dos k pontos que definem o conjunto de vértices da malha. Como na pratica é comum aplicar uma composicao de transformagées a um grande numero de Pontos, convém calcularmos antes de tudo o agrupamento das matrizes de trans. formacao usando a propriedade associativa da multiplicacao de matrizes. Ou seja, podemos calcular inicialmente a matriz M = Mn....MsM3M2M_ e utilizar M diretamente na transformacao de varios pontos sem precisar refazer os calculos das multiplicagdes de matrizes Mj a Mna cada ponto. Pi =M,*---M,*M,* M,*M,* Pi=M*p, Ps =M,*---M4*M3*M,*M,* p,=M*p, DP, =M,*--M,*M,*M,* M,* py=M*p, Cabe lembrar que a ordem importa ao falarmos de multiplicacao de matrizes. Portanto, a ordem da multiplicagao em uma composicao € geral- mente relevante ao resultado final obtido, existindo matrizes que, quando trocadas, alteram tal resultado. A seguir, descrevemos as transformacées lineares mais utilizadas ™ manipulacdo de objetos graficos. 2.7.1. Transformacao de Escala A transformacao dita Escala permite mudar as dimensdes de um objeto: # Figura 2.17 ilustra essa transformacao, 54 © COMPUTAGAO GRAFICA’= GERACAO DE IMAGENS xy eae ms 5 o 1 2 3 4 5 10 4 2 gong FIGURA 2.17. Escala de objetos. Em 2D, podemos definir uma transformacao de escala pelo fator s; de alteracdo da coordenada x e pelo fator sy da coordenada y como: x= y=syey xX A escala 2D pode ser representada na forma matricial como: DHE IC] Ja no espaco tridimensional podemos incluir um terceiro fator de escala Sz para modificar a coordenada z. Desta maneira temos a matriz de escala 3D como: O.uso de fatores de escala dentro do intervalo entre ]0,1[ tem o efeito de encolhimento, enquanto um valor exatamente igual a 1. mantém o objeto sem alteracao e valores maiores que 1 provocam ampliacaéo.. Quando os fatores de escala sao idénticos entre si a escala é dita uniforme, e nos casos contrarios a escala € dita nao uniforme (Figura 2.18). Existe uma forma fechada para se desfazer uma transformacdo de escala. Isso significa que se quisermos inverté-la nao precisamos usar recursos computacionais para calculo da matriz inversa, mas que ao invés disso TRANSFORMACOES GEOMETRICAS NO PLANO ENO ESPACO * 55 lO earl ae 1G m6 10) FIGURA 2.18. Escala ndo uniforme. podemos codificar tal inversa diretamente. A inversa de uma matriz de de fatores sx, sy e’sz nada mais é do que a matriz de escala de fatores 5,1, si e sz (ou seja, I/sy, sy e 1/sz): 1 leo Ol rx F L =|0 = 0O|* e pea oF OS Algumas propriedades interessantes devem ser observadas. Sendo uma transformacdo linear, a escala deixa a origem do sistema inalterada. Repate, porém, que um objeto distante da origem do sistema de coordenadas a0 ser escalado é deslocado em relacao a origem proporcionalmente aos fatores de escala escolhidos. 2.7.2. Transformacao de Rotacao A transformacao linear dita Rotacdo 2D, ao ser aplicada em um objet, é equivalente a gira-lo ao redor da origem do Sistema de Coordenadas. Portanto, como nas demais transformacées lineares, a origem permanect inalterada por essa transformacao. A Figura 2.19 ilustra a rotacdo de u? ponto p= (x,y) em torno da origem, passando para'a posicao p”. Para construir uma matriz representando rotacao sobre pontos do plan? vamos usar de 'trigonometria e da observacao de que a distancia entre u" ponto qualquer sendo rotacionado e a origem permanece a mesma antes © dépois da rotacao. A essa distancia damos o nome de taio 1, que € obtido como: 56 © COMPUTAGAO GRAFICA’~ (GERACAO'DE IMAGENS FIGURA 2.19. Rotacdo do ponto p. As coordenadas de um-ponto p = (x,y) podem ser reescritas-como: x=recos(6) y=rxsen(0) onde (sigma) representa o angulo formado por re o eixo horizontal. Depois de rotacionado por um angulo @ (theta),.o tamanho do raio é mantido, mas r passa a formar o angulo de (@+ @) em relacao ao eixo horizontal (Figura 2.19). Logo, podemos encontrar as coordenadas do ponto p’=(x’, y) (p rotacionado) usando expansoes trigonométricas sobre a nova posic¢ao definida por r: x’=rxcos(6+0)=r *cos(o)*cos(8)—r+#sen(G)*sen(8) y=r «sen(6+0)=r*sen(o)*cos(8)+r#cos(o)*sen(®) Agora podemos substituir as' ‘coordenadas originais de p = (x,y) = (r*cos(o), 1*sen(o)) na'equacao anterior, pois elas sao conhecidas. Assim, formando as express6es: x’=x*cos(0)—y *sen(@) y’=y*cos(@)+x#*sen(8) Que podem ser descritas na forma matricial como: x’]_[cos(@) -sen(8)| | x y’| [sen(@) cos(@) y. ‘TRANSFORMAGOES GEOMETRICAS NO PLANO E NO ESPACO * 57 Ao aplicar a rotacdo nos pontos que descrevemm um objeto Centralizady 20 redor da origem obtemos o efeito de rotacdo ao redor de si mesmo, Ung vez que a origem é mantida fixa, enquanto que objetos fora da origem tem todos os seus pontos alterados pela rotacao do plano (Figura 2.20), FIGURA 2.20. Rotacdo de objetos. No 3D, a rotacao permite, por exemplo, que os objetos sejam visualizados por diferentes angulos. Uma das maneiras de se modelar a rotacdo em 3Dé fazer tal operacao individualmente ao redor de cada um dos eixos. Seguindo essa abordagem, sao usados os chamados angulos de Euler. A partir de trés eixos, x, y € z, podemos definir os trés angulos de rotacao de Euler, BGG. * o angulo f define o giro em torno do eixo x, para pontos no plano yz, * 0 Angulo ddefine o giro em torno do eixo y, para pontos no plano xz; * e0angulo que define o giro em torno do eixo z, para pontos no plano xy (Figura 2.21). Essa decomposicao faz com que cada rotacao Ppossa ser obtida a partir da andlise de operacées realizadas nos planos xy, yZ € xz enquanto 0 eixo FIGURA 2.21. Rotacao ao redor de Z. 58 © COMPUTACAO GRAFICA ~ GERACAO DE IMAGENS ortogonal.a tais planos é mantido fixo durante a rotacdo. Desta forma, cada transformacao de Tota¢ao por angulos de Euler tem sua definicao sim- plificada ao tratamento de apenas duas dimensdes, O sentido positivo desses Angulos é afetado pela ambiguidade na definicao do sentido do terceiro eixo no, espaco 3D anteriormente discutida (Figu- ra 2.22). Ou seja, precisamos observar se foi adotado um sistema de icoor- denadas que observa a regra da mao direita (padrao mais usado) ou da mao esquerda. Tomando a mao definida como padrao e posicionando o polegar na dire¢ao positiva do eixo escolhido para a rotacao, o sentido Positivo de rotacao é dada pelo sentido de fechamento dos dedos (Figura 2.23). Vocé ¥ y, ® ® FIGURA 2.22. Sentido positivo de rotacdo: sistemas definidos pela regra (1) da mao direita; (2) da mao esquerda. Eixo de Rotagao Diregao da Rotagao ¢ B ¢ FIGURA 2.23. Sentido positivo da rotacao. TRANSFORMACGES GEOMETRICAS NO PLANO E'NO-ESPACO « 59 soedirefta tire, Pode apontar’o polegar para si e perceber que a ae See rey Totacag de sentido anti-horario enquanto que a esquer Produ, Totacao de sentido horario. A forma matricial da rotacdo € dependente do eixo sobre o qual'se efen 4 Totacao. A matriz de'rotacao ao 'redor do eixo x pelo angulo de Euler Be definida como: Xi)icfds sO 0 | [x y’|=|0° cos(B) —sen(B) |*| y 2’} 10 sen(B) cos(B) | |z ao redor de y por x] [ cos(8) 0 sen(8)] [x yf} 0 1 Oo fay z ~sen(6) 0 cos(5)} |z e ao redor de z por ¢: * | | cos($) —sen() 0] [x J [=| sen) cos() 0 || y z 0 0 1] los de Euler facilitam uma definicao pre- 'm sistema de eixos. Esses Angulos definema rotagao em um plano pelo giro em torno de um vetor normal a esse plano. Sao muito usados na Mecanica (na descricéo do movimento de peas ¢ partes de maquinas) e na Fisica (para o Posicionamento de objetos) [Kane, 1983]. Podemos observar que as colunas de.uma matriz de rotacao em torno de certo eixo cartesiano sao dadas pela transformacao dos vetores da base canénica. 60 * COMPUTACAO GRAFICA - GERACAO DE IMAGENS Outra observacao importante € que matrizes de rotacdo sao ortonormais. Isto implica dizer que cada uma das suas colunas forma um vetor de comprimento 1 e que, tomando tais vetores dois a dois, eles sio mutuamente ortogonais, isto é, seus produtos internos resultam em zero. O mesmo € yalido para as linhas de matrizes de rotagao. A inversa de uma matriz de rotago pode ser encontrada se obtendo a matriz de rotacdo pelo angulo negativo ao aplicado originalmente. Entre- tanto, ha outra forma de se encontrar a inversa de matrizes de rotacao. Para isso podemos usar 0 fato de serem matrizes ortonormais, as quais implicam em inversas que sao simplesmente a transposta da matriz original. Logo, no caso de matrizes de rotacéo, podemos assumir: R™ = R*. Ao definirmos a rotacao por combinacdo de rotacées definidas por meio de angulos de Euler, teremos um resultado que € dependente da ordem de definicdo das rotacoes. Experimente dar trés rotacdes em um objeto qualquer (uma caixinha, por exemplo) de 90° em torno dos seus eixos. Repita o processo duas vezes, mas em ordens diferentes, e vocé nao terda mesma face do objeto como resultado. A combinacao das rotacées nao é comutativa. Além disso, certa rotacio no espaco desejada pode ser obtida por diferentes combinacées de rotacdes por angulos de Euler, causando uma ambiguidade perigosa. Outra restricdo que afeta diretamente sua aplicagéo em animagoes ou geracdo de movimentos utilizando rotacdo em geral é a falta de um mecanis- mo de interpolacgdo suave entre poses. Discutiremos outra representacao para rotagdes na Secao 2.7. 2.7.3. Outras Transformacoes Lineares A manipulacao dos elementos de uma matriz de mesmas dimensdes que os pontos transformados define uma Transformacdo Linear de tais pontos e produz varios efeitos. Além da Escala e Rotacdo, as transformacées de Reflexao e de Cisalhamento, descritas a seguir, sio as mais comumente utilizadas na Computacao Grafica. Entretanto, tais transformacdes podem ser reescritas usando variacdes e combinacoes das transformacoes de Rotacao e Escala. Por tal motivo, Rotacao e Escala sdo ditas transformacoes basicas da classe de Transformacées Lineares. 2.7.3.1. Transformacao de reflexao A transformacao de reflexao em torno de um eixo € também chamada de espelhamento ou flip. Ao ser aplicada a um objeto, produz seu reflexo TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO'» 61 como se fosse visto por um espelho posicionado sobre 0 eixo escolhig Para reflexao, lo No caso de uma reflexao 2D (Figura 2:24), pode-se definir 9 spel, mento pelo eixo x: x’) [-1 0] [x = EF yy} lo ljLy * FIGURA 2.24. Exemplo de reflexdo 2D. Pelo eixo y: x) fl oy Px |= * YJ 10. -1] Ly Ou por ambos os'eixos x e y: CH HL] Quando falamos de espaco, a reflexao é, Passa a.ocorrer por planos. Pode- mos ter uma reflexao da coordenada x p; elo plano yu 62 * COMPUTACAO GRAFICA’~ GERACAO. DE IMAGENS x’] [-1 0.0] fx yl=|0 1 Of y z| 10 0 1flz Bem como da coordenada y pelo plano xz: x] [1 0 0] [x y'|=|0 -1 of¥]y z ‘| {o 1 1] |z E da coordenada z pelo plano xy como: x 10 0} {x yl=]0 1 04 y z’} [0 0 -1} [z Da mesma forma que no plano, no espaco podemos escrever transfor- macées de reflexao que combinem mais eixos, nesse caso podendo refletir dois ou até trés eixos. Em todas as matrizes de reflexao as coordenadas dos eixos ndo refletidos, se houverem, permanecem inalteradas. Podemos ainda observar que as reflexdes podem ser vistas como um caso especial de transformacées de escala com fatores negativos no respectivo eixo de espelhamento (mais especificamente com valores —1). Os tamanhos s4o mantidos por tais transformagées. Obtemos desta foriua as mesmas matrizes apresentadas anteriormente. 2.7.3.2. Transformacao de cisalhamento Imaginem uma pilha de folhas de papel, formando um grande bloco. Ao aplicar certa forca que produz uma distor¢ao de inclinacao na pilha, os papéis sao deslocados na horizontal, sem, entretanto, terem sua altura na pilha alteradas. A transformacdo linear capaz de produzir tal efeito € chamada Cisalhamento (em ingles, shear). Para construir a matriz de representacao do Cisalhamen- to exemplificado, podemos modelar 0 que acontece com o quadrado unitario (Figura 2.25). TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO » 63 FIGURA 2.25. Cisalhamento. Observe que o vetor e; nao é alterado pela transformacao (a base do cubo continua parada), enquanto que o vetor €2 ¢ transformado para o vetor (a lateral do cubo é inclinada de maneira a manter a mesma alturae tem um Angulo a). Desta maneira, o deslocamento recebido € proporcional a altura. Logo, temos a matriz de cisalhamento citado como: x’) fl al fx AS Ey yy LO 1 Ly Observando o triangulo formado pelos pontos da origem e pelo vetor e€2,antes e depois da transformacao de cisalhamento, é possivel concluir que a = tan (a/y), onde a representa o angulo induzido pela inclinacao do cisalhamento. Casos em que 0 cisalhamento acontece na outra dimensao, ou seja, pto- movendo uma inclinagao alterando o valor da coordenada x (Figura 2.26), sao obtidos pela seguinte matriz de transformacao: x) [1 0] [x _|= * YI Lb Deby Podemos ainda modelar um cisalhamento no plano com inclinagoes e™ ambas as dimensoes, nao necessariamente identicas, por (Figura 2.27): Cb THE] 64 * COMPUTAGAO GRAFICA - GERACAO DE IMAGENS. FIGURA 2.27. Cisalhamento ao longo dos dois eixos. Em 3D, podemos pensar em cisalhamento de maneira semelhante. Pode- mos modelar a inclinac4o por um dos trés eixos, dois deles, ou até mesmo os trés (Figura 2.28). A Tabela 2.5 resume as matrizes de cisalhamento para inclinagdo um eixo. FIGURA 2.28. Cisalhamento em 3D. TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO » 65 TABELA 2.5 Matrizes de cisalhamento para inclinagdo um efxo Inclinando x ao crescer y Inclinando y ao crescer x Inctinando 2 20 cresegry x) [1 @ 0] [x Yl=|0 1 ols 2} |o 0 14 [z x] [1 0 0} |x yj=|a 1 0l*¥ z| fo 0 1) [Zz x) [1 0 0] Ty ¥\=|0 1 ols] y Zz ao z Inclinando x ao crescer z Inctinando y ao crescer Z Inclinando x ao Crescer x) [1 0 al [x YJ=|0 1 ofsly Z| [0 o 1] Iz x] [1 0 0] [x y|=|0 1 al*ly fzA\e|O. 0) Ali 2 x 10 Ol fy yJ=}0 1 ofely Ze\ 10 a 1); 2.7.3.3. Descoberta de uma transformacao linear qualquer Ha situacdes em que queremos definir uma transformacdo linear de maneita inversa, ou seja, sabendo como um conjunto de pontos se comporta, des- cobrir qual a matriz que representa tal transformacao. E possivel descobrir uma transformacio linear no plano, L:R?9R?, se conhecido como a transformacao L altera os vetores da base de R®. Ou seja, desde que saibamos L(e1) e L(e2), ondee: = < 1,0> ee = < 01>. Observe: Logo, os valores de L(e1) e L(e2) podem sey das da matriz L. A transformacao de um pode ser reescrita como: fe Heo SH ‘| tools IE] 66 * COMPUTAGAO GRAFICA ~ GERACAO DE IMAGENS, T usados para descobrir as enti Ponto qualquer p= (x,y) =x*e1 +)" L(p)=L(x*e,+ y*e,) =x*L(e))+y*L(e,) =x*(a,c)+y*(b,d)= =x*(ae,+c#e,) +y*(b¥e,+d¥e,)= =(a*x+b*y)*e,+(cax+d*y)*e, De maneira semelhante, podemos descobrir uma transformacdo linear no espaco L:R°-9R° , desde que seja conhecido o mapeamento base e1, €2, €3, ou seja, conhecidos L(e1), L(e2), L(e3). 2.8. TRANSFORMACOES AFINS Expandindo a classe de transformacoes lineares para incorporar a soma de vetores, temos 0 conjunto de transformagoes chamado de Transformagoes Afins, que podem ser escritas na forma geral de: v'-T(v)-A*v+b Esta formulacdo geral consiste de uma transformacao linear (descrita pela matriz A) seguida por uma translacao (descrita pelo vetor b). Na pratica, A pode ser resultado da combinacao de um conjunto de transformacoes lineares e ainda assim atender a formulacdo geral anterior. Transformacoes lineares e afins produzem mapeamentos que mantém linhas retas (trés pontos colineares continuam colineares apés a trans- formacdo); preservam paralelismo (mas nao necessariamente mantém)o angulo entre duas retas concorrentes); e conservam relacées de distancias sobre uma linha (dados pi, p2 € p3 distintos. E preservada a proporcio |p2- -pil/lps-pal antes e depois da transformacao). 2.8.1. Transformacao de Translacao Transladar um ponto no plano p = (x,y) significa desloca-lo por um vetor v= < tyty> de maneira que sua nova posicao passa a ser p=(x+tyy+ty). O mesmo ocorre na translagao para pontos do espaco, descritos como p=(x,y,z e deslocados pelo vetor v = < t,,ty,t-> para p’ = (x + tyy +ity, Zt tr). TRANSFORMACOES GEOMETRICAS NO PLANO ENO ESPACO + 67 Ao utilizarmos a notacao matricial, € possivel descrever a translacao Como, x] fx] 6 YFP RS zZ} iz) Le Ao pensarmos na inversa de uma translacdo, é bastante intuitivo Percebe, que podemos reverter uma translacao produzida por um vetor vy aplicando.. uma nova translacao por um vetor -v. Ao falarmos da movimentagao de um objeto, transladamos o0 objeto des. cando-se todos os seus pontos pelo mesmo vetor, conforme ilustrado na Figura 2.29. Cabe ainda lembrar que nao seria possivel representar uma translacdo por uma transformacao linear, uma vez que tais transformagées nado afetam a origem do sistema, ou seja, 0 ponto (0,0) permanece fixo qualquer que seja a transformacao linear. lo FIGURA 2.29. Translacdo. 2.8.2. Coordenadas Homogéneas Transformacées Afins também podem ser im de matrizes de maneira que a transformacao por uma tinica matriz C, como T(v) =C* de uma nova representacdo para as mat e vetores. Suponha a inclusdo de uma nova coorde: génea, tal que passamos a representar 3D como (x, y, zw): A conversao da representacao tradicion; genea é feita acrescentando nos pontos w plementadas por multiplicacio T(v) = A*v +b passe a ser descrita Y, Mas para isso faz-se necessario 0 us? trizes de transformacdo e para pontos nada w, dita coordenada homo Pontos 2D como (x,y, w) € pomtos al para a representacao homo” © valor 1, e utilizando 0 pa 68 © COMPUTAGAO GRAFICA ~ GERACAO DE IMAGENS vetores. Dado um ponto em representacao homogénea, voltamos para a representa¢ao convencional dividindo-se as coordenadas pelo valor corrente de w e, uma vez que ele passa a ter valor 1, é, em seguida, eliminado. Sao representacdes equivalentes de pontos em 2D: p=(x,y=(x, y,D=(w sway w= Lava *y,w) Sao pontos equivalentes em 3D: pa(%y2=(%y, 2D = (0 *x,wey,wz,w) Lew xywy,wtzw) w Assim, os objetos geométricos em 2D agora passam a ter trés coordenadas e em 3D passam a ser descritos com quatro coordenadas. Para representarmos transformacées de maneira coerente com as coor- denadas homogéneas, as transformacées lineares passam ser representadas acrescentando-se a sua matriz original uma quarta coluna e uma quarta linha idénticas as da matriz identidade, ou seja, contendo apenas zero a menos da ultima posicado da matriz que recebe 1: Em 2D: Em 3D: Lyyaiii 0 9 Aya= 0 ‘Attespoq bgy sbs0 0 ol 0 00 O01 O uso de coordenadas homogéneas tem a grande vantagem de permitir a representacao das transformacoes afins.¢ lineares de maneira uniforme. Repare que a translacdo pelo vetor 3D b pode ser escrita na forma da seguinte multiplicagao de matrizes: , oP) fel fh 8 oe] x) [x] [te t, {Jo 1.0. ¢ y'lely lly KP BPs 3a] , z| jij JO 0 1 t} Jz zLUILEL |i] fo] [ooo 1] fa TRANSFORMACOES GEOMETRICAS NO PLANO ENO ESPACO » 69 Repare, ainda, que podemos reescrever 4 formulacdo geral de tray formacées lineares e afins pelo uso de coordenadas homogéneas com, Em 2D: Em 3D: t Lia ty : Aga = t | Issa fy % Aga = t 0 ol z 00 O01 Tal uniformidade tem sua importancia destacada ao pensarmos em com. binacdes de um conjunto de n transformagoes afins ¢ lineares, pois permite a padronizacao de todas as matrizes de transforma¢6es no mesmo formato, permitindo serem multiplicadas entre si. Repare que, mesmo ao concatenar apenas duas matrizes, por exemplo, uma transformacao linear B com uma transformacao afim (A*p + y), temos: B¥(A*p+v)=B*A*p+B*y sendo necessario nessa modelagem reorganizar a transformacdo para descobrir que parte é influenciada pela posicdo de entrada (p) e que parte atua como uma translacao (B*v) deslocando igualmente, qualquer que seja 0 ponto de entrada. Vocé pode escrever outros exemplos de combinacao de n matrizes de transformagao afim, ou combinagées de afins com lineares, ¢ perceber a necessidade dessa reorganizacao. Ao representar uma transformacdo afim com o uso de coordenadas homo- géeneas C*p = (A*p + v), a combinagao de um conjunto de transformacées fica transparente e resolvida, apenas utilizando a operacao de multiplicacio de matrizes representadas com coordenadas homogéneas. No proximo capitulo, usaremos ainda a Tepresentacdo em coordenadas homogéneas para o desenvolvimento de matrizes que produzem outros tipos de transformacao, ditas projetivas. 2.8.3. Combinagées de Transformacgées As transformacoes apresentadas produzem uma série de efeitos graficos interessantes, sendo importante o dominio desse tema e de como tran formacoes combinadas podem atender a especificacdes de uma determinadé 70 * COMPUTACAO GRAFICA ~ GERACAO DE IMAGENS situacdo. Sao incontaveis as combinacées possiveis, Para ilustrar sua diversi- dade, a seguir sao exemplificadas como as operacées lineares basicas podem ser combinadas para produzir deformacées sobre um quadrado unitario (Sedo 2.6.3.1), além de produzir, pela combinacao de duas transformagoes conhecidas, outra transformacao conhecida (Secao 2.6.3.2) e, ainda, como translacdes € rotagdes podem ser combinadas para a implementacao de um sistema de orbitas (Secdo 2.6.3.3). 2.8.3.1. Escala ao longo de uma direcao qualquer Suponha que queremos transformar um quadrado unitdrio centralizado na origem em um losango centralizado na origem, mas de largura 1 e altura 4, Uma possibilidade € escalar a direcdo de uma de suas diagonais ao mes- mo tempo em que deixamos a outra diagonal sem alteracao (Figura 2.30). Podemos entao formular uma combinacdo de transformag6es para conseguir esse efeito. Uma possivel solucdo seria: * rotacionar 45° 0 cubo unitario; * aplicar uma escala nao uniforme de Sy = 4, mantendo o fator de escala do eixo horizontal como 1. FIGURA 2.30. Escala ao longo da'diagonal do quadrado unitario. 2.8.3.2. Reescrevendo as rotagoes com cisalhamentos As combinacoes de transformacées lineares por vezes produzem outras operacoes lineares conhecidas. Para ilustrar, observe que a'aplicagéo das trés matrizes de cisalhamentos apresentadas produz a matriz de rotacdo 2D: cos(@) —sen(0)|_ 1 0 ri 1 sen(@) a 1 0 sen(8) cos(@) | [-tan(0/2). 1] [0.1 -tan(0/2) 1 TRANSFORMACOES GEOMETRICAS NO PLANO E NOESPACO © 74 2.8.3.3. Rotacdo ao redor de um ponto qualquer Suponha a implementacao de um objeto que funcione como um pontei;, de um relégio. Caso o centro de rotacao coincida com a origem do Sistema q. coordenadas, tal implementacao ¢ dada pela propria matriz de TOtacag Previamente definida. Suponha, entretanto, casos em que o centro de Totacag € outra posigdo qualquer do sistema de coordenadas. Nestes casos, Consegyj. mos tal efeito pela combinacao de transformagoes de rotacao e translacig, Mais detalhadamente (Figura 2.31): 4 FIGURA 2.31. Rotacdo ao redor de um ponto. = (Gx Gy, C) para ~Cxy “Gy, “Ce >); leva-se'o ponto que funciona como centro de rotacao a origem (usando a translacao pelo vetor v = (0,0)-c = executa-se a rotacao pelo angulo e direcdo desejados; em seguida volta-se com o ponto centro de rotacdo para sua posicio original, usando uma translacao pelo vetor v = c = < Cx, Cy, Cz >). 2.9. QUATERNIOS — REPRESENTACAO ALTERNATIVA PARA ROTACOES Quatérnios, comumente representados por H em homenagem ao seu criador, foram formulados pelo matematico William Rowan Hamilton em 1844 como um sistema que estende a representacdo de nimeros complexos. Assim como ntimeros complexos s4o uma abstracéo matematica, qua térnios também o sao. As propriedades dessa abstracdo fornecem uma modelagem e solucdo matematica para diversos problemas praticos. Usados inicialmente em aplicagdes de mecanica no espaco tridimensional, atualmente quatérnios s4o usados na Computacao Grafica, como uma maneit alternativa de descrever e manipular rotagdes em 3D para realizar, por exemplo: ¢ controle de camera; « interpolacdo suave de rotagoes; « produzir representacdes compactas; 72 © COMPUTAGAO GRAFICA = GERACAO DE IMAGENS. * animacdo de objetos; + implementacao de rotagées em hardware: Embora a primeira vista tais tarefas pudessem ser modeladas utilizando angulos de Euler, conforme apresentado na Seco 2.5.3, na pratica tal repre- sentacao introduz problemas: suas matrizes sao dificeis de combinar e inter- polar; e ainda, podem travar eixos de rotacao conforme discutido a seguir. Conforme apresentado, angulos de Euler formulam orientacdo pela multi- plicacéo de matrizes. Tal combinacéo de matrizes apresenta um problema chamado de bloqueio de gimbal (gimbal lock). Tal problema ficou famoso ao acontecer com um conjunto de giroscépios na missao Apolo 11 a Lua. O bloqueio pode ser observado fisicamente em mecanismos que produ- zem a rotacao por trés eixos independentes na forma de anéis concéntricos (Figura 2.32 A), quando é gerada uma combinacao de rotagées que faz com que dois anéis de rotacao coincidam. A partir de entao, um grau de liberdade é perdido (Figura 2.32 B). 2 FIGURA 2.32. Mecanismo de gimbal (a) e bloqueio de gimbal (b). O mesmo pode ser observado na modelagem matematica de rotacées por tais eixos. O exemplo a seguir apresenta uma composicao de uma rotacéo respectivamente pelos eixos z, y € x: 1 0 0 cos(B) 0 sen(B)] [cos(5),, -sen(S) 0 R=|0 cos(a@) —sen() |* 0 1 0 © |#|sen(5) ~cos(6) 0 0 sen(a) cos(a) | |-sen(B) 0 cos(B) 0 0 1 Supondo neste exemplo a escolha de 8 como 90°, de maneira que ao girar em torno do eixo y passamos.a alinhar os eixos x e z. Este alinhamento TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO » 73 Produz o efeito do bloqueio de gimbal. Substituindo na matriz cote, Pondente o valor de Bcomo 90°, temos: 1 0 0 0.0 1] [cos(6). -sen(8) gy R=] 0: cos(a)’ =sen(a)|#) 0» 1. 0#}sen(S) cos($) 0 'sen(a) ‘¢os(a) | [-1 0 0 0 O71 Completando a multiplicacao anterior e utilizando as identidades ttigo. nométricas que definem o cosseno e o seno da soma de dois angulos, temos (como exercicio, estenda vocé mesmo): 0 0 1 R=] sen(a+8), ,cos(a+8) 0 =cos(a+8) sen(a+5) 0 Observe que alterar a rotacao ao redor de x pelo Angulo arou de z por 5 tem © mesmo efeito nesta matriz, nao sendo mais possivel distinguir as rotacdes por esses dois eixos. Além do exemplo citado, outras combinacées de rotagdes podem chegar a um resultado semelhante, ou seja, chegar a um pontoa partir do qual nao é mais possivel distinguir trés eixos independentes de rotacio. O mesmo problema é encontrado em animacées e movimentacoes de camera por sucessivas rotacdes de angulos de Euler. Por esse motivo, na pratica, devemos usar outra formulacao Para rotagoes, os quatérnios. A proxima se¢do apresenta de maneira sucinta os numeros complexos para em seguida fazer a apresentacdo dos quatérnios, 2.9.1. Ndmeros Complexos O primeiro contato com os numeros complexos no éstudo da matematica st faz na busca por um valor que representa a raiz de mimeros negativos. Esse valor nao existe no conjunto dos ntimeros reais R, uma vez que este conjunto nao possui um ntimero tal que, ao ser multiplicado por ele proprio, resulta em um valor negativo. Com a intencao de resolver o problema, os ntimeros complexos C inco™ poram um numero imaginario normalmente Tepresentado pela letra i (em algumas ciéncias a letra j também € usada), onde i é uma abstracao cons truida de maneira a atender a seguinte regra: i*i=-1, logo izya] 7h * COMPUTAGAO GRAFICA ~ GERACAO DE IMAGENS A partir dessa definicao, € possivel decompor e resolver raizes de demais valores negativos tal como: V—-4= [714 =2*J-1=2+: A abstracao matematica de um numero complexo z qualquer é decompos- ta em uma parte real a e uma parte imaginaria b: zZ=atbri A Tabela 2.6 a seguir resume as propriedades de operac6es aritméticas em numeros complexos: Tais propriedades realizam operacoes aritméticas como se o numero imagina- tio i fosse uma variavel ou coeficiente. Desta maneira, € possivel agrupar termos reais com termos reais, e agrupar termos imagindrios com imagindrios, como em: (34+5*i)+(-1+4*i)=24+94i TABELA 2.6 Propriedades de operacoes aritméticas em ndmeros complexos adigao (at b*)H(cHd*)H(a4c)+(b+d)*i subtracao (a+b*i)-(c4+d* i) =(a-0)+(b-d)*i multipticacao por escalar é* (a+b *i)=(c*a+c*b*i) divisdo por escalar (orb) 2,6,; C Cc.) ‘identidade aditiva (a+b*i)+(0+0*)=(a+b*)+0-0+b*T inverso aditivo (ou simétrico) (a+b * i) +(-a-b*i)=0 multiplicagao de complexos (a+b*i)*(c+d*i)=(a+c-b*d)+(a* d+b*o*I divisdo de complexos a+bei (a*c+b*d) | (b*c—a*d) ai c+d*i — c? +d? c2 +d? conjugado Z=a-b*i multiplicagao pelo conjugado z*Z=(a+b*i)(a—b*i)=a? +6? inverso muttiplicativo Zz qa Lie ei a2+b2 a2@+b? a? +b? TRANSFORMAGOES GEOMETRICAS NO/PLANO E NO'ESPACO © 75 Além disso,em equacées envolvendo termos associados a PotEncias 4 : (com n mMaiores do que 1), é possivel converté-las de volta em um, nim, ei Complexo escrito como um par formado por uma Parte com 0 valor Teal (agrupando termos de poténcia com n par) € uma parte imagindria j (agry Pando termos de poténcia com n fmpar). 14241 +341? +4413 +5414 +6417 = 14+241+3%(-1)+4#i*(-1)+5*(—14*—D+ 641 #(-1 4-1 (1-3+5)+(2-4+6)*i= 344%: Como a parte real e a parte imaginaria de um ntimero complexo nao se misturam por adicdo ou subtracdo, seus componentes real e imaginatio podem ser Tepresentados visualmente em um plano de eixos ortogonais, Para isso, tracamos z = < a, b> sobre um plano, chamado de plano complexo ¢ descrito pela base vetorial B = {1 =.(1,0), i = (0,1)}, onde Por convencio se representa a parte real no eixo horizontal e a parte imaginaria no eixo vertical, Com essa representacao, o ntimero complexo passa a ser descrito como Z= , ou seja, usando notacao vetorial. Uma vez interpretados como vetores sobre o plano, pode-se aplicar as propriedades e atributos do conjunto de vetores, sendo natural levantar, por exemplo, os conceitos de magnitude (comprimento ou norma) e direcdo de um numero complexo. Pela definicao de norma de um vetor, temos que: ke|=a2ebF Podemos ainda descrever um numero complexo utilizando representacao polar (Figura 2.33): z—p*(cos(@)+i *sen(8))—(p,6) Im a Re FIGURA 2.33. Representacao polar de um nimero complexo. 76 © COMPUTAGAO GRAFICA ~ GERACAO DE IMAGENS, Neste caso, a multiplicagao entre dois complexos z1 € 2 passa a ser escrita como: Z1 =P, * (cos(®,)+i*sen(6,)) 2) =P2* (cos(@,)+i*sen(@,)) 2,*Z, =P, * p,*(cos(8, +0,)+i*sen(O, +8,)) Z1*Z) =(Py * Pz 8 +8,) Assumindo um dos complexos com norma unitaria, essa equacao pode ser interpretada como uma rotacao. Nesta representacao a ordem da multiplica- cao ndo importa, atendendo a propriedade comutativa da multiplicacéo de numeros complexos, confirmando a propriedade comutativa para rotacoes no plano (esta propriedade nao se estende ao espaco). Suponha, por exemplo, o operador que realiza a rotagéo por 90°. E representado como o complexo unitério z; =<0, 1 > = 0 + 1*i. Seja um ponto qualquer no plano dos complexos z2 = a + b*i, temos sua rotacao como: Zy* Zp =Zz*Z =(atb*i)*(O+41 41) =—b + a4i Observe que rotacées por outros angulos podem ser. encontradas de maneira semelhante, partindo da representacao de um. complexo unitério de a= cos(angulo) e b = sen(angulo). 2.9.2. Quatérnios Os Quatérnios sao uma abstracao matematica dada pela quadrupla formada por um valor (dito parte real do quatérnio) e,trés:componentes imagina- rios, comumente representados usando as letras i, j, e k. Sao exemplos de numeros quatérnios (sendo o ultimo exemplo composto apenas pela parte imaginaria): 5+1i+2j+3k | —2+6i+5k Li+2j+3k TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO * 77 Os quatémios podem ser representados na forma de um vetor de dimensées , representando respectivamente o valor escalar termos associados as partes imaginarias i, j, ek. =al+bi+c+dk ou ainda (suprimindo 0 1): =atbit+c+dk onde a, b, c, e d sao valores reais. Desta forma, elementos de H passam a te uma representacdo em R* na forma . Mais formalmente, a Tepresentacao de um quatérnio como vetor uti. liza uma base vetorial no hiperespaco de dimensao 4, no qual a primeira dimensao € associada a Parte real e as trés demais dimensées sao associadas as partes imaginarias i, j, e k. Desta maneira, todo elemento de HI pode ser escrito de forma tnica como uma combinacao linear dos elementos de sua base B= {1 = (1,0,0,0), i= (0,1,0,0), j= (0,0,1,0), k = (0,0,0,1)}. Hiperespaco € a denominacaio matematica de espacos com mais de3 dimensées. Objetos matematicos podem ser ordenados em relacdo ao nime- to de dimensdes de maneira que pontos sao objetos sem dimensao, retas possuem uma dimensdo, planos possuem duas dimensées, espacos trés dimensoes, enquanto para quatro ou mais dimens6es temos um hiperespaco. Dois quatémios qi=a'+ bi+¢j + dke qu=e + fi+ gj + hk sao considerados iguais se, e somente se, seus componentes sao idénticos, isto é, a= e,b=f, c=ged=h. Quatérnios dispoem de trés operacées basic: ‘as: adicdo, multiplicacao por escalar e multiplicacao por outro quatérnio, descritas a seguir. 2.9.2.1. Adigaéo de dois quatérnios A adicao de dois elementos de HH € definida como a soma de seus elementos em R*: Gtbitejtdk)+(a,+ byitcyj+d,k)= (yt) +0, +b it +0,)j+(d4 d k= <4) 1150.4) >+= SCAr4 42),Or4 by)s(,40,), (d+ d,)> 78 * COMPUTACAO GRAFICA = GERACAO DEIMAGENS, Por exemplo: (14+2i+3j+4k)+(54+4i+3j+2k)= 6+ 61+6j+6k= <6,6,6,6> A operacao de subtracao de quatérnios nao apresenta dificuldades, sendo semelhante a soma: (a,+ bite j+dk)—(a,+b,itc,j+d,k)= (4, -a,) +(b\— by i+ (C,-c) j+(d,—-d, k= <4),b,,C),d, >—= <(a\— 43), (b\—b,), (G-€,), (d\-d,) > O inverso aditivo de um quatérnio q = < a,b,c,d> € o numero que a ele somado produz zero, tal numero é 0 quatérnio encontrado por -q = <-a, -b, -c, -d>. 2.9.2.2. Multiplicagao de quatérnios por valores reais O produto de um elemento de HI por um numero real se comporta de maneira semelhante ao produto de um valor escalar por um elemento de Rt: e*(atbi+ctdk)= (exat+e*bite*c +e*dk)= e*= Assim: 3*(14-2i43j+4k)= (3+6i+9j+12k)= <3,6,9,12> TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO 79 ‘Sontenan ae a : he he corinne: seonapaatnesy ote se als cma dim ane enti aaa soe te: We Hina rte MAH thy ie ovhinpetna Hen NONO MPN tale ty a, werterne. ‘fr i wc eon ed a ae te ee Pet er ee ee ae He peas oe © ee el eee ne ee teres sates Gente cstsninnimned (ole wise cena Sh 6 © ita Meet URNS 6 tn meteteme aN weno oe) ee] Ment Go Hook: watsoran getmemib thine “etal Some sm ected een taen ante eR Ree ee So nethnen eNe ih op etnies Rech See soe mele ee Se ete eA By os Hay Se te ep eet eer teenie: 2 ett ethene Oe ARR er MMAR: te iMate tay me Neon yneesns ae (8 esteem neti Amp SR Mattie ek i ety A nee ee teil eRe ik homer te A ihe ence | deednnhieth im ail neuumanea A eM AN ae anes et CAEN ER ARNE ERNE apresentadas, a multiplicacao entre dois elementos em H pode ser penisada em duas etapas: uma etapa de tmultiplicagao distributiva, e uma etapa de simplificacdo de termos observando as tegras de multiplicacao dos vetores da base i,j, e k. Na primeira etapa utilizamos a propriedade distributiva da multiplicacao como se i, j, e k, fossem variaveis distintas de uma equacao: (a,t byitc,j+d,k)(a, +byi+c,j+d,k)= 4,*(a,+b,i+c,j+d,k) +b,i*(a,+bi+c,j+d,k) +0, j*(a,+b,it+c,j+d,k) +dyk*(a,+b,i+c,j+d,k) Expandindo os produtos e rearranjando os termos: (a,+ byitc,j+dyk)(a,+ byi+c,j+d,k)= Gy *a,+ (a, *b, +, *b,)it (a; *Cy tay *C,) jt (a, #d, +4, * dk +(b,*b,)i? + (by ¥cy (ij +(d, *d,)ik +(c,* by) jit (Cy *Cg) j? +(C, *d,) jhe +(d,* ba )ki +(dy *ca)bj + (dy #4) h? Em uma segunda etapa multiplicagées entre termos complexos (tal como # ou ij) sao avaliados e simplificados aplicando-se.as propriedades basicas apresentadas, de volta aos termos da base de HH: (art bite, j+dyk)(azt byitc,j+d,k)= (ayaq7 byba- 62-414) +(a;b,+byay+6,d,—d)c,)i +(ay6,~b,dy+ 6149+ dyb2)j +(a,d_+byc.— Ob, + d,a,)k TRANSFORMACOES GEOMETRICAS NO PLANO E NO ESPACO + 81 Que pode ser descrita na base 1, i, j, k como: < Ay, Dry C2042 >= <4y ay Dyb,— 64 6. ida, yb, + bya + Od - Ayer» ,C)—bydy+ 6a, + db, a,d,+b,c,—cb, + da, > Pode-se ainda descrever um quatérnio isolando a parte real da Parte imaginaria (dita parte vetorial de um quatérnio): U- onde =a, € Vy = 42-= <1,v,> onde =a, € v,= Nesta representacdo a multiplicacao de dois quatérnios resulta de opera- Goes de produto entre as partes escalares, entre as partes escalares e as partes vetoriais, e de produto interno e produto vetorial entre as partes vetoriais: UPA ESV St V2P =< * Ty —V-V9 41 # V+ 1 * V+ Vy XVy) Observe que as operacées envolvendo ve: Tham em dimensao 3, uma vez que o quatérnio. ‘tores na equacdo anterior traba- peram apenas na parte vetorial do 2.9.2.5. Conjugado de um quatérnio O calculo do conjugado g de um quatérnio qse da de maneira semelhante ao conjugado de um numero complexo, ou seja, simplesmente invertendo o sinal da parte imaginaria. Seja q = , onder=aey= , seu conjugado q ¢ dado por: q=<4,-b,~c,-d>= é representado como a multiplicacdo 4*P*F, onde 4 € quatérnio, unitario e J seu conjugado, definidos a partir de Oe n como, q= 2 2 1 q= 2 2 2 2 Portanto, tal equacdo permite transformar uma representacdo de um vetor no sistema cartesiano ao redor do qual se deseja realizar a rotacdo paraa Tepresentacao de quatérnios. Logo, expressa a maior facilidade do uso de quatérnios para rotacao, que é a possibilidade de expressar uma rotacdo em torno de um eixo genérico n. Observe que tanto os pontos quanto os operadores de rotacao podem set escritos na forma matricial apresentada anteriormente. Apés a multiplicacio, a representacao euclidiana pode ser obtida descobrindo-se a parte vetorial do quatérnio como coordenadas do ponto rotacionado. Vamos aplicar a representacdo em quatérnios em um exemplo de rotagio de 90° ao redor de y do ponto definido em coordenadas cartesianas como p = (3,0,0). Em quatérnios: ta eTig p=<0,3,0,0> an 2 {FZo.0) {2025} 4 © COMPUTAGAO GRAFICA ~ GERACAO DE IMAGENS Ea rotacao de p € obtida como: 9Pq= =<, 0—, a) 2 0><0,3,00><42 P o522000.0,3> Outro importante aspecto dos quatérnios ¢ que podemos combinar rotacoes de maneira que q,* q:* p*q) *q; pode ser reescrito como 43* P*q3 onde q3 = q2 * qi. Ha tarefas em que se faz necessario gerar passos intermediadrios entre rotagées, ou seja, interpolar entre angulacées. Ao ingenuamente aplicar uma interpolacdo linear entre as orientacdes buscando obter orientagées intermediarias, percorre-se uma reta secante ao circulo unitario que contém todos os quatérnios unitarios que representam rotacoes. Repare que além de gerar quatérnios no unitarios ao longo de tais combina- oes, passos uniformes sobre essa secante nao implicam em angulos idénticos, portanto, nao produzem o efeito de transigdo suave esperado (Figura 2.34). Para obter uma transicdo suave, devemos repartir 0 arco que se deseja percorrer em segmentos de comprimento igual (Figura 2.35). IM Pontos obtidos por ‘Pontos obtidos pela interpolagao linear interpolagao correta’ FIGURA 2.34. Interpolacdo de quatérnios separados por um angulo 5. Loy Be 2K FIGURA 2.35. Reparticao do angulo de rotacao. TRANSFORMAGOES GEOMETRICAS NO PLANO E NO ESPACO 85 Para isso, devemos descobrir o angulo 5.que separa as ie Was orienta es (assumindo como ja representadas como vetores unitarios), 0 qual pog. ser obtido observando seu produto interno: 4-42 [sll4alc0s6)-cos 8) Uma observacao pratica é que, por questées de erro numérico, a manipyl, ¢ao de composicées de quatérnios pode vir a gerar vetores nao unitarios, 1 boa pratica € verificar a norma dos vetores, ¢, s¢ foro caso, normalizalos 2.10..CAMERA VIRTUAL A Computacao Grafica modela uma camera virtual com a intencaode produzir imagens para visualizacdo de cenas 3D. Na abstracao comumente adotada para tal camera virtual,’ processo fisico de formacao de imagens ¢ simplificado para o processo de encontrar a intersecao dos raios que fazem, a projecao dos objetos da ceria sobre 0 plano de formacao da imagem. Nessa simplificagao, o modelo geométrico adotado ignora, por exemplo, questoes fotométricas e da fisica de lentes. O processo de formacao da imagem digital estabelece a correspondéncia entre pontos das superficies de objetos da cena 3D (descritos no Sistema de Coordenadas do Mundo, ou Global) e sua projecdo em um plano 2D (plano da imagem). A projecdo € feita em relacéo a um ponto de referéncia definido pela camera (ou observador da cena), a qual possui um sistema de coordenadas préprio. O modelo matematico que da suporte a este proceso considera trés grupos de transformacées: 1. Transformacées entre sistemas de coordenadas 3D: modelando a trans formacao do Sistema de Coordenadas do Mund Coordenadas da Camera. 2. Transformacées de projecao das coordenadas 3D em coordenadas &¢ imagens 2D: neste caso, modela-se uma transformacao de project? para um sistema padrao, sem se Preocupar com detalhes especificos da imagem digital produzida, lo para o Sistema de 3. Transformacées entre a Tepresentacao 2D padronizada e possiveis escolhas de representacao da imagem digital produzida: Seguindo este modelo, a camera virtual ¢ apresentada a seguir sobre tt aspectos principais: seu comportamento como objeto localizado e orien! em relacdo ao mundo virtual (Secao 2.8.1); como € feitaa projecao da cen 86 © COMPUTACAO GRAFICA = GERACAO DE IMAGENS.