440 likes | 675 Views
Computação Gráfica. Transformações Geométricas Sistemas de Coordenadas. Aula 3. Prof. Leandro Taddeo. Transformações Geométricas. Introdução.
E N D
Computação Gráfica • Transformações Geométricas • Sistemas de Coordenadas • Aula 3 Prof. Leandro Taddeo
Transformações Geométricas Introdução • Transformações geométricas são operações que podem ser utilizadas visando a alteração de algumas características como posição, orientação, forma ou tamanho do objeto a ser desenhado • Ex: dado um ponto no plano podemos mudar sua posição através de transformações geométricas T 10 unidades
Transformações Geométricas Matrizes • Todas as transformações geométricas podem ser representadas na forma de equações • Problema: manipulações de objetos gráficos normalmente envolvem muitas operações de aritmética simples • Solução: matrizes são mais fáceis de usar e entender do que as equações algébricas • Padrão de coordenadas: • Pontos no plano (x,y) Matrizes 2x2 • Pontos no espaço tridimensional (x,y,z) Matrizes 3x3 • Matriz de transformação: várias transformações combinadas
Transformações Geométricas Representações • Dado um sistema de coordenadas, pode-se definir elementos neste sistema através de suas coordenadas • Caso o sistema seja 2D • Pontos são definidos por 2 coordenadas • Define-se um ponto pela sua distância em relação ao centro dos eixos • (2,1) 2 unidades distante de x=0 1 unidade distante de y=0 y (2,1) 1 x 2
Transformações Geométricas Representações • Convencionalmente, representa-se um ponto na forma de um vetor linha ou vetor coluna • Também corresponde à forma mais simples de representação de uma matriz (linha ou coluna) y A (2,1) 1 x 2 Vetor linha Vetor coluna
Transformações Geométricas Representações • O par pode servir para representar tanto o ponto quanto o vetor em si y A (2,1) 1 x 2 Vetor linha Vetor coluna
Transformações Geométricas Operações • Diversas operações podem ser efetuadas entre pontos e vetores: • Soma e subtração de vetores t = v + u t = v + (- u) y y t=v+u u v x t=v+(-u) -u v x
Transformações Geométricas Operações • Diversas operações podem ser efetuadas entre pontos e vetores: • Soma e subtração de vetores t = v + u Seja u=[1,3] e v=[2,1], o vetor resultante t=v+u será igual a: t=[1+2,3+1] =[3,4] y t=v+u u v x Obs: os vetores precisam ter as mesmas dimensões
Transformações Geométricas Operações • Diversas operações podem ser efetuadas entre pontos e vetores: • Multiplicação de um vetor por um escalar (constante) u = 2v Seja v=[2,1], o vetor resultante u=2v será igual a: u=[2*2,2*1] =[4,2] y v v u=2v x
Transformações Geométricas Operações • Diversas operações podem ser efetuadas entre pontos e vetores: • Soma de um ponto com um vetor Q = P+v Seja P=[2,3] e v=[2,-1], o ponto resultante Q=P+v será igual a: Q=[2+2,3-1] =[4,2] y P Q v x Obs: os vetores e os pontos precisam ter as mesmas dimensões
Transformações Geométricas Operações • Diversas operações podem ser efetuadas entre pontos e vetores: • Transposto de um vetor v t Seja v=[3,1], o vetor transposto resultante vt será igual a: vt=[1,3] y vt v x
Transformações Geométricas Operações em Matrizes • Algumas operações são também aplicadas a matrizes Multiplicação de matriz por escalar Soma de matrizes Transposta de uma matriz Multiplicação de matrizes Obs: Algumas operações são limitadas pelo tamanho das matrizes
Sistemas de Coordenadas Introdução • Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D • Serve para nos dar uma referência de tamanho e posição dos objetos
Sistemas de Coordenadas Introdução • Sistema de Referência: sistema de coordenadas cartesianas para alguma finalidade específica • Deve-se especificar: • Unidade de referência básica • Limites extremos dos valores aceitos para descrever os objetos • Sistemas com denominação especial • Sistema de Referência do Universo (SRU) • Sistema de Referência do Objeto (SRO) • Sistema de ReferênciaNormalizado (SRN) • Sistema de Referência do Dispositivo (SRD)
Sistemas de Coordenadas Sistemas com denominação especial
Sistemas de Coordenadas Sistema de Referência do Universo (SRU) • Sistema de referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário em determinada aplicação • Também chamado de coordenadas do universo, ou do mundo • Ex: • Sistemas CAD de arquitetura o universo em metros ou centímetros • Sistemas CAD de mecânica de precisão o universo em milímetros ou nanômetros
Sistemas de Coordenadas Sistema de Referência do Objeto (SRO) • Cada objeto seja (ou possua) um miniuniverso individual • Particularidades dos objetos descritas em função de seu sistema • O centro deste sistema costuma coincidir com o centro de gravidade do objeto • Na modelagem de sólidos, este centro é conhecido como pivô
Sistemas de Coordenadas Sistema de Referência do Normalizado (SRN) • Trabalha com coordenadas normalizadas • Em 2D: • 0 ≤ x ≤ 1 • 0 ≤ y ≤ 1 • Funciona como um sistema de referênciaintermediárioentre o SRU e o SRD • Função principal: tornar a geração das imagens independente do dispositivo • Coordenadas do universo são convertidas para um sistema de coordenadas padrão normalizado
Sistemas de Coordenadas Sistema de Referência do Dispositivo (SRD) • Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída • Ex: número de pixels de monitores • 640×480, 800×600
Sistemas de Coordenadas Exemplos
Sistemas de Coordenadas Exemplos
Sistemas de Coordenadas Exemplos
Aplicação Transformações Geométricas 23 • A habilidade de representar um objeto em várias posições no espaço é fundamental para compreender sua forma • A possibilidade de submetê-lo a diversas transformações é muito importante para aplicações em C.G. • As transformações geométricas podem ser aplicadas em 2D ou 3D e os tipos principais são: • Translação, rotação e escala
Translação Transformações Geométricas 24 • Transladar significa movimentar o objeto, mas como é possível movimentar um objeto completo? • Um objeto é formado pelo que? • Pontos • Então, para movimentar um objeto, basta movimentar os pontos que compõem o mesmo • Como os pontos de um objeto podem ser representados em um sistema de coordenadas, basta adicionar quantidades às suas coordenadas
Translação – Exemplo Transformações Geométricas 25
Translação – Formalização Transformações Geométricas 26 x’ = x + Tx y’ = y + Ty P’ = P + T [x’ y’] = [x y] + [TxTy] ou Representação na forma de vetores (soma de dois vetores) • Imagine um ponto (x,y) que representa um objeto • Pode-se mover este objeto Tx unidades em relação ao eixo x • Pode-se mover este objeto Ty unidades em relação ao eixo y • A nova posição é representada por (x’,y’) e pode ser escrita como
Translação – Formalização Transformações Geométricas 27 x’ = x + Tx y’ = y + Ty z’ = z + Tz P’ = P + T [x’ y’ z’] = [x y z] + [TxTyTz] ou Lembre-se que esta transformação deve ser aplicada a cada um dos pontos (P) que formam um objeto Também é possível representar a translação em um espaço 3D:
Escala Transformações Geométricas 28 • Escalonar significa mudar as dimensões de escala, mas como é possível escalonar um objeto completo? • Basta multiplicar os valores de suas coordenadas por um fator de escala • Cada um dos vetores que compõem o objeto são multiplicados por um mesmo fator de escala
Escala – Exemplo Transformações Geométricas 29
Escala – Formalização Transformações Geométricas 30 x’ = x * Sx y’ = y * Sy ou Representação matricial (multiplicação de vetor e matriz) • Imagine um ponto (x,y) que representa um objeto • Pode-se escalonar um objeto no eixo x aplicando um fator de escala Sx a este ponto • Pode-se escalonar um objeto no eixo y aplicando um fator de escala Sy a este ponto • A novo valor de suas coordenadas é representado por (x’,y’) e pode ser escrito como
Escala – Formalização Transformações Geométricas 31 x’ = x * Sx y’ = y * Sy z’ = z * Sz ou Também é possível representar a escala em um espaço 3D:
Escala – Observações Transformações Geométricas 32 • Para aplicar uma escala em um objeto, é necessário que o objeto esteja na origem dos eixos • Caso contrário, essa operação de multiplicação também fará com que o objeto translade
Transformações Geométricas Rotação 33 • Rotacionar significa girar • Ao lado é mostrado o exemplo de rotação de um único ponto • O ponto P é rotacionado rumo ao ponto P’
Rotação – Exemplo Transformações Geométricas 34 90º
Rotação Transformações Geométricas 35 x’ = r . cos(θ + φ) = r * cos φ * cos θ – r * sen φ * sen θ y’ = r . sen(θ + φ) = r * sen φ * cos θ + r * cos φ * sen θ Que equivale a: x’ = x * cos θ – y * sen θ y’ = y * cos θ + x * sen θ Se um ponto P, distante r=(x2+y2)1/2 for rotacionado de um ângulo θ em torno da origem, suas coordenadas que antes eram definidas por: x=r*cos(φ), y=r*sen(φ), passam a ser dadas por:
Rotação – Formalização Transformações Geométricas 36 x’ = x * cos θ – y * sen θ y’ = y * cos θ + x * sen θ ou • Imagine um ponto (x,y) que representa um objeto • Pode-se rotacionar um objeto no plano xy de um dado ângulo θ utilizando-se as expressões obtidas no slide anterior • A novo valor de suas coordenadas é representado por (x’,y’) e pode ser escrito como
Rotação – Observações Transformações Geométricas 37 • Para aplicar uma rotação em um objeto, é necessário que o objeto esteja na origem dos eixos • Caso contrário, essa operação também fará com que o objeto translade
Rotação em Torno de um Ponto Transformações Geométricas 38 • Como rotacionar um objeto em torno de um dado ponto? • Transladar este ponto para a origem dos eixos • Efetuar a rotação • Transladar o ponto para sua posição original Obs: a mesma idéia é aplicada à escala
Rotação 3D Transformações Geométricas 39 y y y p' p' p p p x x x p' z z z É possível aplicar a rotação em qualquer plano (xy, yz, xz)
Composição de Transformações Geométricas Transformações Geométricas 40 Pode-se criar uma transformação geométrica através da composição de várias outras
Exercício 41 y y x x Aplique transformações geométricas para que o objeto fique como especificado