Transformações Gráficas Tridimensionais (3D) Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro
Introdução A manipulação, visualiação e a construção de imagens gráficas tridimensionais requer a utiliação de transformações de coordenadas e de transformações geométricas em 3D. Estas transformações, em gral, são formadas pela composição das transformações primárias de translação, de variação de escala e de rotação. Como no caso de 2D, cada uma destas transformações pode ser representada por uma matri, a matri da transformação. As transformações e conceitos aqui introduidos são generaliações directas daqueles introduidos para as transformações 2D. 2
Introdução (cont...) Em relação a um sistema coordenado 3D, um objecto Obj é considerado como um conjunto de pontos: Obj = {P(,, )} Se o objecto é movido para uma nova posição, podemos considerá-lo como um novo Obj, no qual todos os pontos P (,, ) podem ser obtidos a partir dos pontos coordenados P(,, ) através da aplicação de uma transformação geométrica. T: P(,, )P (,, ) Da mesma forma que para o caso das transformações 2D, as transformação em 3D eploram a representação em coordenadas homogéneas isto é, o ponto P(,,) é representado na forma P(,,,W), cuja homogeneiação resulta em P(/W,/W,/W,) 3
Introdução (cont...) O sistema de coordenadas para 3D utiliado será o da Regra da Mão Direita, com o eio Z perpendicular ao papel e saindo em direcção ao observador, como poder ser visto na figura a seguir. 4
Translação A TRANSLAÇÃO em 3D pode ser vista como simplesmente uma etensão a partir da translação 2D, ou seja. Uma translação de um ponto P no espaço (,, ) realia-se pela adição em X, Y e Z do respectivo valor da translação. Na forma vectorial a TRANSLAÇÃO fica como: Assim, a equação anterior pode ser representada também como: P' = T(d, d, d ) P 5
Variação de Escala O processo de variação de escala altera as dimensões de um objecto. Na transformação de variação de escala o ponto P(,, ) sofre a variação de escala de S = (S, S, S ) O factor de escala S determina se a escala é uma ampliação, S >, ou uma redução, S <. Na forma vectorial a VARIAÇÃO de ESCALA fica como: Assim, a equação anterior pode ser representada também como: P' = S(s, s, s ) P 6
Transformações Gráficas 3D Transformações Gráficas 3D Transformações Gráficas 3D Variação Variação de de Escala Escala Caso geral: Variação de escala com relação a um ponto fio ( f, f, f ) O transformação de variação de escala neste caso pode ser representada a partir da seguinte composição de transformações: Translação do ponto ( f, f, f ) para a origem Variação de Escala com relação à origem de 7 Variação de Escala com relação à origem de coordenadas Translação da origem de volta para o ponto ( f, f, f ) Assim: = ) ( ) ( ) ( ),, ( ),, ( ),, ( f f f f f f f f f s s s s s s T s s s S T
Rotação A rotação em 3D é consideravelmente mais complea que a rotação em 2D. Em 2D, a rotação é determinada por um ângulo de rotação θ e um centro de rotação P. Em 3D é preciso definir um ângulo de rotação θ e um eio de rotação. Definição: A rotação em 3D é chamada canónica quando algum dos eios de coordenadas (O, O ou O) é escolhido como o eio de rotação. No caso da rotação canónica, a construção da transformação de rotação pode ser processada tal como no caso da rotação em 2D em torno da origem 8
Rotação (cont...) Rotação em torno do eio O Da secção das transformadas gráficas em 2D sabemos que: ' = *cos(θ ) *sin(θ ) ' = *sin(θ ) + *cos(θ ) ' = O parâmetro θ indica o ângulo de rotação. Na forma vectorial a rotação canónica em torno do eio O ficaria da seguinte forma: ' ' ' = sinθ sinθ ou como P' = R ( θ ) P 9
Rotação (cont...) As equações da Rotação em torno aos eios O e O podem ser obtidas mediante permutações cíclicas das coordenadas dos parâmetros, e. Isto é podemos utiliar as seguintes permutações: Substituindo estas permutações na equação da rotação em torno do eio O obtemos a seguinte Equação para a rotação em torno do eio O. Em torno de O Em torno do eio O ' = *cos(θ ) *sin(θ ) ' = *cos(θ ) *sin(θ ) ' = *sin(θ ) + *cos(θ ) ' = *sin(θ ) + *cos(θ ) ' = ' = Na forma vectorial, a rotação em torno do eio O ficaria da seguinte forma: ' ' = ' sinθ sinθ
Rotação (cont...) De forma análoga, i.e. mediante permutações cíclicas das coordenadas dos parâmetros, e podemos obter a equação da rotação em torno ao eio O. Para isto é podemos utiliar as seguintes permutações: Substituindo estas permutações na equação da rotação em torno do eio O obtemos a seguinte Equação para a rotação em torno do eio O Em torno de O Em torno do eio O ' = *cos(θ ) *sin(θ ) ' = *cos(θ ) *sin(θ ) ' = *sin(θ ) + *cos(θ ) ' = *sin(θ ) + *cos(θ ) ' = ' = Na forma vectorial a rotação em torno do eio O ficaria da seguinte forma: ' ' = ' sinθ sinθ
Rotação (cont...) Rotação não canónica (Eemplo Nº ): Quando pretendemos faer uma rotação de um objecto em torno a um eio que é paralelo a um dos eios de coordenadas (O, O ou O) podemos escrever essa transformação como uma composição de transformações : Traslação do objecto de tal forma que o seu eio de rotação coincida com o eio de coordenadas paralelo a ele. Rotação do objecto em torno ao eio de coordenadas Translação do objecto de volta a sua posição original Em notação de transformação temos: P' = T Rw ( θ ) T P, onde w =, ou 2
Rotação (cont...) Rotação não canónica (Eemplo Nº 2): Quando pretendemos faer uma rotação de um objecto em torno a um eio que não é paralelo a um dos eios de coordenadas (O, O ou O) Eemplo: Seja L um eio de rotação especificado pelo vector dirigido V e pela localiação do ponto P. Determinar a transformação correspondente à rotação de θ em torno de L. R A transformação de rotação pode ficar como:. Translação de P para a origem 2. Alinhamento de V com o vector k 3. Rotação de θ em torno de k 4. Inversão dos passos 2 e Assim θ, L = T P AV Rθ, K A V T P k v Q..Q L.P 3
Rotação (cont...) Rotação não canónica (Eemplo Nº 2): Eemplo Nº 2 (cont ): A V V A matri da transformação de Alinhamento de V com o vector k pode ser obtida a partir de uma sequencia de rotações canónicas (será analisada num eercício das aulas práticas). O aspecto geral desta matri é: λ V = a V ab λ V c λ b V = ai + bj + ck; V ac λ V b λ c V = a 2 + b 2 + c 2 ; λ = b 2 + c 2 k v Q..Q L.P 4
Refleão A refleão em 3D pode ser realiada de duas formas: Relativamente a um eio de refleão dado Relativamente a um plano de refleão dado Em geral as matries das transformações de refleão em 3D são similares as matries de refleão em 2D. É fácil observar que as refleões relativas a um eio dado são equivalentes a uma rotação de 8º em torno desse eio Eemplo: Refleão relativamente ao plano O Neste caso é fácil observar que a refleão de P(,,) com relação ao plano O é P (,, ). Neste caso a matri de transformação será: 5
Distorção (Shearing) A transformação de shearing pode ser aplicada também em 3D Por eemplo: uma distorção na direcção (-shearing) é produida com a seguinte matri de transformação: SH = a b onde a e b podem tomar valores reais. O efeito dessa transformação altera as coordenadas e. 6
Tilting Tilting: transformação gráfica que pode ser definida como uma rotação em torno do eio O, seguida por uma rotação em torno do eio O: T = R R θ, J θ, I (a) Determine a matri de tilting Podemos determinar a transformação de tilting T concatenando duas matries de rotação: senθ senθ senθ senθ = senθ senθ senθ senθ senθ senθ 7
Tilting (cont...) (b) A ordem das rotações é, ou não importante? Se multiplicarmos R R θ, I θ, J obtemos: Esta não é a matri da alínea (a); portanto, a ordem das matries é importante 8
Transformação entre Sistemas de Coordenadas (2D) As aplicações gráficas frequentemente requerem a transformação de descrições de objectos de um sistema de coordenadas para outro. Agora vamos considerar especificamente transformações entre dois Sistemas de Coordenadas Cartesianos. Para transformar pontos de um objecto dados em um sistema de coordenadas O para um sistema O com origens em (,) e (, ), com um ângulo de orientação θ entre os eios e, precisamos determinar a transformação que sobrepõe os eios O aos eios O. Isso pode ser feito em 2 passos: Transladar o sistema de modo que sua origem coincida com a origem do sistema O: T(-, - ) Rotação do eio de forma que ele coincida com o eio : R(θ ) Obtemos M, '' = R(θ ) T(-, - ) 9