Sistema de Coordenadas & Coordenadas Homogêneas Prof. MSc. João Ricardo Bittencourt Update: 4 Set. 2007 [email protected] Processamento Gráfico Desenvolvimento de Jogos & Entretenimento Digital UNISINOS Sumário 1. 2. 3. 4. 5. Sistemas de coordenadas Matrizes Princípios de Transformações 2D Coordenadas Homogêneas Combinação de transformações Sistemas de Coordenadas Usados para descrever objetos em um sistema 2D/3D – posição e tamanho Sistema de Referência de Coordenadas Unidade de referência – mm,cm,m,km,pol Limites (máximo e mínimo) Sistemas de Coordenadas: Cartesiano Sistema de Referência do Universo (SRU) Sistema de Referência do Objeto (SRO) Sistema de Referência Normalizado (SRN) Sistema de Referência do Dispositivo (SRD) Sistemas de Coordenadas Plano Cartesiano y (x'',y'') y'' y' (0,0) (x',y') x' x'' x Sistemas de Coordenadas Sistema de Referência do Universo (SRU) Domínio da modelagem Cada domínio tem seu SRU Define-se uma escala e os limites • 1:50mm • 1:100cm (40,30) (80,30) (40,15) (80,15) 250m (limite) Sistemas de Coordenadas Sistema de Referência do Objeto (SRO) Cada objeto tem seu próprio sistema de coordenadas em relação a um ponto extremo (0,15) (40,15) (0,0) (40,0) Sistemas de Coordenadas Sistema de Referência Normalizado (SRN) (0 >= x <=1) & (0>= y <= 1) Tornar a geração de imagens independente de dispositivo SRU -> SRN SRN -> SRD (0.16,0.12) (0.32,0.12) (0.16,0.06) (0.32,0.06) Sistemas de Coordenadas Sistema de Referência do Dispositivo (SRD) Resolução de vídeo • 1024x768 • 800x600 A origem posiciona-se no canto superior esquerdo (96,527) (192,527) (96,563) (192,563) 800x600 Matrizes Conceito geral 1 2 3 B= 4 5 6 7 8 9 2ª linha 3ª coluna b2,3=6 Na CG interessa a operação de multiplicação N.Colunas da Matriz 1 = N.Linhas da Matriz 2 Gera: (N.Linhas da Matriz 1,N.Colunas da Matriz 2) Lembrando que a multiplicação não é comutativa Matrizes Matriz Identidade 1 0 0 I= 0 1 0 0 0 1 Todos os elementos são zeros, exceto os elementos da diagonal principal que são zeros Matrizes quadradas (N.Linhas=N.Colunas) M.I=M Translação Deslocar um P para P' adicionando 'n' unidades no eixo x e 'm' unidades no eixo y Dx unidades deslocadas no eixo x Dy unidades deslocadas no eixo y P(5,2) Translação Deslocar um P para P' adicionando 'n' unidades no eixo x e 'm' unidades no eixo y Dx unidades deslocadas no eixo x Dy unidades deslocadas no eixo y Dy = 13 P(25,15) P(5,2) Dx = 20 Translação (x' y') = (x y) + (Dx Dy) P' = P + T Escala Comprimir/esticar em relação ao eixo x e/ou eixo y P4(10,10) P3(50,10) P1(10,5) Dy = 5 P2(50,5) Escala Comprimir/esticar em relação ao eixo x e/ou eixo y P4(10,20) P3(50,20) Dy = 10 (ou seja, é o DOBRO) P1(10,10) P2(50,10) Escala P' = P . S x' y ' = x Sx 0 y⋅ 0 Sy Sendo Sx é o fator de escala no eixo x (largura) Sy é o fator de escala no eixo y (altura) Rotação Rotacionar um polígono em 'n' graus em relação à origem P4(10,10) P3(50,10) P1(10,5) P2(50,5) Rotação Rotacionar um polígono em 'n' graus em relação à origem Maiores detalhes veja no Foley (demonstração matemática) Rotação P' = P . R Anti-horário (ângulos positivos) x' y ' = x cos sin y⋅ −sin cos Horário (ângulos negativos) x' y ' = x cos− sin y⋅ sin − cos− Coordenadas Homogêneas Tratar as transformações de forma uniforme (problema com a translação) Passa a ser considerado um fator w. P(x,y) – P(w.x,w.y,w) Se for dado (x,y,w) converte-se para o plano cartesiano: x = x/w e y=y/w Para resolver o problema da translação adota-se as coordenadas homogêneas com fator 1: P(x,y,1) Coordenadas Homogêneas Translação P' = P.T(Dx,Dy) x' y ' 1= x 1 y 1⋅ 0 Dx 0 0 1 0 Dy 1 Coordenadas Homogêneas Escala P' = P.S(Sx,Sy) x' y ' 1= x Sx 0 0 y 1⋅ 0 Sy 0 0 0 1 Coordenadas Homogêneas Rotação P' = P.R(φ) x' y ' 1= x cos sin 0 y 1⋅ −sin cos 0 0 0 1 Combinação Desta forma é possível combinar transformações Extremamente otimizado do ponto de vista computacional A ordem das matrizes influencia o resultado Através da multiplicação das matrizes usando coordenadas homogêneas Transladar 30 unidades em X Rotacionar 30º em X Transladar 15 unidades em Y Redimensionar para 1.5 vezes a altura da figura