Transformações de Pontos Computação Gráfica Prof. Dr. Paulo Roberto Gomes Luzzardi Aluna: Karina da Silva Salles Sumário Motivação Definição Translação Escala Rotação Reflexão Shearing Referências Motivação Transformações Geométricas (TG) são a base de inúmeras aplicações gráficas, podendo estar desde em simples programa para representar layouts de circuitos eletrônicos; em programas de planejamento de cidades; ou mesmo em sistemas de software sofisticados que permitem a construção de cenas realistas. Definição Uma transformação de coordenadas da forma: v’ = A .v + b, é denominada uma transformação “afim”. Neste caso, as coordenadas (x’, y’) do vetor v’, que definem um ponto no espaço, são uma função linear de (x, y) do vetor v. A e b são constantes determinadas pelo tipo de transformação. As transformações afins têm a função de modificar a posição dos pontos no espaço, ou dos objetos no espaço. Translação (1) É a alteração da posição de um ponto através da soma de constantes de deslocamento as suas coordenadas. Translação (2) Cada ponto P(x, y) pode ser movido por dx unidades em relação ao eixo x, e por dy unidades em relação ao eixo y. Logo, o ponto P’(x’, y’), pode ser escrito como: x’ = x + dx y’ = y + dy Translação (3) E se definimos os vetores colunas: então as expressões podem ser expressas como: P' = P + T Translação (4) Podemos transladar um objeto, fazendo-o a todos os seus pontos (o que não é muito eficiente). Para transladar uma linha podemos fazê-lo apenas para seus pontos limites e sobre estes pontos redesenhar a linha. Translação (Exemplo) Escala (1) A Mudança de Escala corresponde à multiplicação das coordenadas de um ponto por valores iguais ou diferentes. x’ = sx.x y’ = sy.y Escala (2) Ou em forma matricial: Onde sx e sy são respectivamente os fatores de escala em relação aos eixos X e Y. Escala (3) É normalmente aplicada sobre todos os pontos de uma figura com o objetivo de ampliar ou reduzir a sua dimensão ou então distorcer a sua forma geométrica. Fatores de escala: > 1: aumentam o tamanho do modelo; entre 0 e 1: diminuem o tamanho; < 0: "invertem" o modelo em relação aos eixos coordenados. Escala (4) A escala ocorre sempre em torno da origem. Isto quer dizer que todo o ponto que estiver sobre a origem permanece nesta posição após a escala. Por outro lado, os pontos que não estão sobre a origem sofrem um deslocamento em relação a esta após a operação de escala. Escala (Exemplo) Exemplo com valores ½ para Sx, e ¼ para Sy Rotação (1) A rotação é o giro de um determinado ângulo de um ponto em torno de um ponto de referência (ponto de origem), sem alteração da distância entre eles. A rotação, como a translação, é caracterizada por reposicionar os objetos, sem deformá-los. Deste modo, cada ponto do objeto é rotacionado de um mesmo ângulo sobre um mesmo eixo. Rotação (2) A rotação é definida matematicamente por: x’ = x. cos(α) − y. sin(α) y’ = x. sin(α) + y. cos(α) Rotação (3) Ou em forma matricial: Rotação (4) Ângulos positivos a rotação é feita no sentido anti-horário; e ângulos negativos a rotação é feita no sentido horário. Observação: sin(−α) = −sin(α) cos(−α) = cos(α). Rotação (5) A rotação por α transforma P(x, y) em P’(x’, y’). Como a rotação é em relação a origem, as distâncias de P e P’ a origem são iguais. Rotação (Exemplo) Reflexão (1) A transformação de reflexão, ou espelhamento, aplicada a um objeto, produz um objeto que é o espelho do original. No caso de uma reflexão 2D, o espelho é gerado relativamente a um eixo de reflexão rotacionando o objeto de 180° em torno do eixo de reflexão. Reflexão (2) Pode-se aplicar uma reflexão em torno da linha y = 0 (o eixo x) usando a seguinte matriz de transformação: Reflexão (3) Esta transformação mantém as coordenadas x do objeto inalteradas, mas "inverte" os valores das coordenadas y, alterando a orientação espacial do objeto. Reflexão (4) Analogamente, poderíamos definir uma reflexão em torno do eixo y, que "inverteria" as coordenadas x do objeto. Reflexão (5) Podemos também definir uma reflexão em torno de um eixo perpendicular ao plano xy e passando (por exemplo) pela origem do sistema de coordenadas, "invertendo" nesse caso ambas as coordenadas x e y. Reflexão (6) A matriz de transformação é dada por: Shearing (cisalhamento) É uma transformação que distorce o formato de um objeto - em geral, é aplicado um deslocamento aos valores das coordenadas x ou das coordenadas y do objeto. Shearing (2) Uma distorção na direção x é produzida com a seguinte matriz de transformação: Shearing (3) As coordenadas do objeto são transformadas da seguinte maneira: x' = x + shx . y y' = y Qualquer número real pode ser usado como parâmetro. O resultado é que a coordenada (x,y) é deslocada horizontalmente segundo um valor proporcional à sua distância ao eixo x. Por exemplo, se shx é 2, um quadrado será transformado em um paralelogramo. Valores negativos deslocam as coordenadas para a esquerda. Shearing (4) Analogamente, pode-se aplicar uma distorção na direção y, relativa ao eixo x, usando: que gera as seguintes transformações posições das coordenadas: x' = x y' = y + shy . x nas Shearing (5) Esta transformação desloca as coordenadas de uma posição verticalmente segundo um fator proporcional à sua distância do eixo x,. Qualquer operação de distorção pode ser descrita como uma composição de transformações envolvendo uma seqüência de matrizes de rotação e escala. Referências Prof. Dr. André Luiz Battaiola, Apostila do Curso de Computação Gráfica, Departamento de Computação, Universidade Federal de São Carlos – UFSCar; http://www.dpi.ufv.br/disciplinas/inf390 http://www.inf.pucrs.br/~pinho/CG/Aulas http://www.dca.fee.unicamp.br/~martino/iniciacao http://penta.ufrgs.br/edu/telelab/mundo_mat