Introdução à Computação Gráfica Desenho de Construção Naval Manuel Ventura Instituto Superior Técnico Secção Autónoma de Engenharia Naval 27
Sumário Entidades Geométricas Transformações Geométricas 2D Escala Rotação Translação Coordenadas homogéneas Matriz de transformação generalizada Transformações Geométricas 3D Curvas Bézier 2D M.Ventura 2
Entidades Geométricas () Ponto P [ x y] Segmento de recta x x A A [ AB] B y y B Polígono [ ABCD] x x A A B B xc yc x D y y y D y (xa,ya ) (x,y) (xa,ya ) (xb,yb) (xb,yb) (xd,yd ) (xc,yc) M.Ventura 3 x
Entidades Geométricas (2) Vector Família de segmentos de recta orientados que têm todos o mesmo comprimento ou grandeza. A A A A Propriedades aritméticas especiais. Se A é um vector, então A, é um vector de comprimento igual, mas que aponta no sentido oposto. 2. Se A é um vector então ka tem um comprimento k vezes superior a A (Multiplicação escalar). 3. Dois vectores podem ser adicionados para obter um terceiro vector usando o método do paralelogramo ou o método origem-extremidade (Adição vectorial). M.Ventura 4
Entidades Geométricas (3) A A+B B Método do paralelogramo A A+B B Método origem-extremidade M.Ventura 5
Transformações Geométricas em 2D
Transformações Geométricas Transformações Primárias Escala Rotação Translação Transformações Secundárias Reflexão em relação à origem Reflexão em relação a um ponto qualquer Reflexão em relação aos eixos de referência Reflexão em relação a uma recta M.Ventura 7
Transformações Geométricas Primárias
Escala A escala é definida por x y S x x S y y Sob a forma matricial será Sx S y [ x y ] [ x y ] [ x y ][ T ] Escala Si > > factor de ampliação Si < > factor de redução Si > elemento neutro Si > elemento absorvente Sx Sy > escala uniforme Sx Sy > escala diferenciada M.Ventura 9
Rotação () Em coordenadas polares o ponto inicial será x y r cos r sin ( α ) ( α ) e o ponto transformado será: x y ( α β ) ( α β ) r cos + r sin + Desenvolvendo e substituindo ( α ) ( β) ( α) ( β) ( α ) ( β) ( α) ( β) x r cos cos sin sin y r cos sin + sin cos M.Ventura
Rotação (2) O raio pode ser expresso em função das coordenadas do ponto inicial x y r r cos α sin α ( ) ( ) Substituindo r na expressão anterior teremos: x y x cos( α ) cos( β) sin ( α) sin ( β) cos( α) sin( α) x y y cos( α ) sin( β) + sin( α) cos( β) cos( α) sin ( α) E simplificando, teremos: ( β ) sin ( β ) ( β ) cos( β ) x x cos y y x sin + y M.Ventura
Rotação (3) Na forma matricial será: [ x y ] [ x y ] ( β ) sin ( β ) ( β ) cos( β ) cos sin A transformação geométrica da rotação de um ângulo é independente do vector de posição e do raio da rotação, e é expressa pela matriz [ M R ] ( β ) sin ( β ) ( β ) cos( β ) cos sin M.Ventura 2
Rotação (4) Quando o determinante R a rotação diz-se pura. A inversa de uma matriz de rotação pura, é a sua transposta [ R] [ R] T As rotações são positivas no sentido contrário ao dos ponteiros do relógio. Sen Cos Tang 3 /2 3/2 3/3 45 2/2 2/2 6 3/2 /2 3 M.Ventura 3
Translação () Uma translação é definida por x x + V y y + V X Y Para manter a forma matricial e obter uma matriz independente das coordenadas da entidade a transformar, tem que se introduzir o conceito de coordenada homogénea h x y h h h h ( xy, ) ( x, yh, ),, ( xy,,) M.Ventura 4
Translação (2) E a transformação em forma matricial será V V X Y [ x y ] [ x y ] A matriz de Translação é portanto definida por: [ M T ] V V X Y M.Ventura 5
Matrizes de Transformações 2D Escala Rotação Translação [ M ] T S x S y [ ] M T ( α ) sin( α ) ( α ) cos( α ) cos sin [ M ] T V V X Y Notar que nas transformações assim descritas, as matrizes são multiplicadas à direita ou seja [ P ] [ P ] [ ] M T M.Ventura 6
Concatenação de Matrizes () Uma sequência de transformações pode ser representada por uma concatenação de matrizes [ P] [ P] [ T] [ T2] [ T3] [ M T ] [ T ] [ T2 ] [ T3 ] [ P ] [ P ] [ M ] O produto de matrizes não é comutativo, logo, a ordem das transformações é relevante. A compatibilização de matrizes requer matrizes (3 x 3) e a utilização de coordenadas homogéneas A transformação inversa é expressa pela matriz inversa [ T ] [ ] [ ] T T T M.Ventura 7
Concatenação de Matrizes (2) Aplicações: Rotação de um ponto em torno de um centro de rotação fixo diferente da origem. M.Ventura 8
Definição Alternativa das Matrizes Alguns autores e alguns sistemas computacionais usam um arranjo diferente das matrizes de transformação geométrica, que são as transpostas das acima indicadas. [ M ] [ ] T T M T Neste caso, as matrizes são multiplicadas à esquerda, e a matriz dos pontos iniciais deve ser também transposta, ou seja M T P [ ] [ ] [ ] T P A ordem da multiplicação também deve ser invertida. Por exemplo, quando se pretender aplicar, por esta ordem, as transformações [A], [B] e [C], a matriz de transformação total será: M T C B A [ ] [ ] [ ] [ ] M.Ventura 9
Matrizes de Transformação 2D em Coordenadas Homogéneas Escala [ MT] Rotação [ M T ] S X S Y ( α ) ( α ) ( α) ( α) cos sin sin cos Translação [ M T ] V V X Y M.Ventura 2
Compatibilização de Matrizes () As coordenadas cartesianas ordinárias (x,y) são substituídas pelas coordenadas homogéneas (x,y,). Os pontos, segmentos e polígonos são representados em coordenadas homogéneas, respectivamente, por uma matriz de dimensões (x3), (2x3) e (Nx3). [ C] x y x2 y2 M M x n y n M.Ventura 2
Compatibilização de Matrizes (2) A matriz de transformação geométrica em 2D deverá ser representada no seu formato generalizado com as dimensão de (3x3): Os elementos da diagonal a e d correspondem a transformações por variação de escala Os elementos a, b, c e d, reflectem a aplicação de rotações Os elementos e f traduzem translações [ T] a c e b d f M.Ventura 22
Exercício: Ordem de Concatenação Aplicação de duas transformações geométricas sobre um mesmo polígono, [ABC], impondo-se duas sequência distintas de execução. [ ABC] 3 2 3 4 3 C 2 Transf Transf ( 8) Transl( T 3) RotO Y ( T Y 3) Rot ( 8) 2 Transl O A B 2 3 4 x M.Ventura 23
M.Ventura 24 Resolução: Ordem de Concatenação () [ ] Rotação do triângulo em torno da origem de 8 seguido de translação em Y de 3 unidades: 3 3 T [ ] 2 ABC 3 3 2 2 3 3 2 t ( ) ( ) 8 3 Y O Transf Rot Transl T
Resolução: Ordem de Concatenação () Rotação do triângulo em torno da origem de 8 seguido de translação em Y de 3 unidades: M.Ventura 25
Resolução: Ordem de Concatenação (2) Translação de [ABC] segundo Y de 3 unidades, seguido de uma rotação em torno da origem de 8 : Transf ( T Y 3) Rot ( 8) 2 Transl O [ T] 3 3 4 ABC 3 3 4 t 2 3 3 2 6 [ ] M.Ventura 26
Resolução: Ordem de Concatenação (2) Translação de [ABC] segundo Y de 3 unidades, seguido de uma rotação em torno da origem de 8 : M.Ventura 27
Transformações Geométricas Secundárias
Transformações Secundárias As Transformações Secundárias são aquelas que podem ser consideradas como casos particulares ou aplicações compostas de transformações primárias Alguns exemplos: Reflexão em torno da origem (,) Reflexão em torno de um ponto qualquer Reflexão em torno de um eixo de referência Reflexão em torno de uma recta qualquer passando pela origem M.Ventura 29
Reflexão em Relação à Origem A matriz de transformação associada è Reflexão em relação à origem (,) éa seguinte: [ ] M T y P Note-se que corresponde a efectuar uma rotação de 8 (no plano) em torno da origem. x -x t P t y -y t x [ ] M T cos sin ( 8) sin( 8) ( 8) cos( 8) M.Ventura 3
Reflexão em Relação a um Ponto Genérico A Reflexão em relação a um ponto qualquer pode ser obtida em três passos: Translação desse ponto para a origem Reflexão em relação à origem Translação inversa [ P ] [ P ][ T ][ R ][ T ] REF A translação é definida pelas coordenadas do ponto genérico M.Ventura 3 [ T ] P X P Y
M.Ventura 32 Reflexão em Relação a um Eixo Em relação ao eixo dos XX (y) (x) Em relação ao eixo dos YY Note-se que corresponde a efectuar uma rotação de 8 no espaço em torno do eixo.
Reflexão em Relação a uma Recta que passa pela Origem Por simples análise visual se pode deduzir que a matriz de transformação de um ponto P em relação à recta bissectriz do º quadrante (YX) será: [ ] R y x yx t y P t xy P x Podemos obter o mesmo resultado decompondo a transformação desejada numa série de transformações elementares: [ P ] [ P ][ R ][ R ][ R ] 45 xx + 45 M.Ventura 33
Notas sobre Transformações A Reflexão e a Escala só envolvem elementos da diagonal Os elementos fora da diagonal provocam um efeito de shearing. A origem (,) é invariante (Não é alterada pelas transformações) A matriz identidade é o elemento neutro das transformações geométricas, não altera os pontos iniciais. [ P ] [ P ] [ P ] M.Ventura 34
Operações com Matrizes em Excel Funções necessárias para calcular transformações geométricas numa folha de cálculo: mmult(f5:h7;n3:p5) minverse(f5:h7) mdeterm(f5:h7) transpose(f5:h7) <ctrl+shift+enter> radians() sin(), cos() sqrt() M.Ventura 35
Exercício de aplicação () Deduza uma matriz que transforme o triângulo [A A2 A3] em [B B2 B3], sem utilizar rotações: y 3 2 A 2 A 3 [ A A ] A 2 3 2 2 2 [ B B ] B 2 3 2 2 2 - A B 2 3 B 2 x -2 B 3 M.Ventura -3 36
M.Ventura 37 Exercício de aplicação () - Resolução Uma solução possível é aplicar uma reflexão em torno de xx, seguido de uma reflexão em torno da recta y-x : x refl xx refl y Transf [ ] T
Exercício de aplicação () - Resolução Representação geométrica: y y 3 3 2 A2 A3 2 A - 2 3 b x - B 2 3 x B 2-2 b 2 b 3-2 B 3 M.Ventura -3-3 38 y-x
Exercício de aplicação (2) Variação de escala segundo x de um factor 2 do triângulo [ABC], mantendo fixo o vértice (2,3). y 5 C [ ABC] 2 6 3 3 3 5 4 3 2 A B 2 3 4 5 6 x M.Ventura 39
Exercício de aplicação (2) - Resolução. Aplicar uma translação ao triângulo de modo a colocar o vértice A(2,3) na origem (,) 2. Aplicar a variação de escala pretendida (alongamento de 2 vezes apenas segundo X) 3. Aplicar uma translação ao triângulo transformado de modo a reposicionar o seu vértice A em (2,3). M.Ventura 4
M.Ventura 4 Exercício de aplicação (2) - Resolução [ ] 2 2 3 2 2 3 2 T [ ] [ ] [ ] 5 4 3 3 2 2 2 5 3 3 6 3 2 ABC ABC T t Transf Transl(Tx-2, Ty-3) Escala(Sx2) Transl(Tx2, Ty3)
Exercício de aplicação (2) - Resolução Representação geométrica: y 5 C t 4 3 A t B t 2 M.Ventura 2 3 4 5 6 7 8 9 42x
Exercício proposto Indique qual a sequência de transformações necessárias para transformar o triângulo [ABC] em [A B C ] : Calcule a matriz concatenada. Obtenha a matriz de coordenadas final Represente geometricamente. 2 3 [ ABC] 3 [ A' B'C' ] 2 2 2 4 4 3 M.Ventura 43
Exercícios M.Ventura 44
Exercícios M.Ventura 45
Exercícios M.Ventura 46
Exercícios M.Ventura 47
Exercícios M.Ventura 48
Exercícios ATENÇÃO! Multiplicação à esquerda! (Matrizes transpostas) M.Ventura 49
Exercícios M.Ventura 5
Exercícios M.Ventura 5
Exercícios ATENÇÃO! Multiplicação à esquerda! (Matrizes transpostas) M.Ventura 52
Exercícios M.Ventura 53
Exercícios M.Ventura 54
Exercícios ATENÇÃO! Multiplicação à esquerda! (Matrizes transpostas) M.Ventura 55
Exercícios M.Ventura 56
Exercícios M.Ventura 57
Exercícios M.Ventura 58
Exercícios M.Ventura 59
Transformações Geométricas em 3D Manuel Ventura
Matrizes de Escala e Translação em 3D Escala [ M ] T S x S y S z Translação [ M ] T V V V x y z M.Ventura 6
Matrizes de Rotação em 3D Rotação de α em torno de XX [ ] M T cos( α) sin( α) sin( α) cos( α) Rotação de γ em torno de ZZ [ ] M T ( γ ) ( γ) ( γ ) ( γ ) cos sin sin cos Rotação de β em torno de YY [ ] M T ( β) ( β) cos sin sin ( β) cos( β) Regra dos Três Dedos da Mão direita M.Ventura 62
Bibliografia Rogers, David (998), Mathematical Elements for Computer Graphics, McGraw-Hill. M.Ventura 63