• Nenhum resultado encontrado

Computação Gráfica. Transformações Geométricas. Prof. Alaor Cervati Neto 2021/2

N/A
N/A
Protected

Academic year: 2021

Share "Computação Gráfica. Transformações Geométricas. Prof. Alaor Cervati Neto 2021/2"

Copied!
36
0
0

Texto

(1)

Computação Gráfica

Transformações Geométricas

Prof. Alaor Cervati Neto

(2)

Renderizamos objetos 2D de forma estática.

Agora forneceremos movimento a nossos objetos.

Transformações geométricas são operações aplicadas na descrição geométrica

dos objetos (vértices).

(3)

Transformações geométricas primárias:

Translação.

Escala.

Rotação.

Transformações geométricas secundárias:

Reflexão.

Cisalhamento.

(4)

Transformações Geométricas 2D

(5)

Transformações Geométricas 2D

Coordenadas Homogêneas:

Sistema de coordenadas em geometria projetiva.

Um ponto no espaço 2D é uma projeção de um ponto 3D no plano.

Um ponto 2D em coordenadas homogêneas:

Possui três valores: (x h , y h , h).

Onde h é um parâmetro homogêneo (h ̸= 0).

Por conveniência, usaremos h = 1:

Mantemos as coordenadas Euclidianas.

Obtemos maior poder de representação.

(6)

Translação

Adicionar offsets às coordenadas de um objeto:

(7)

Translação

Considerando uma coordenada (x, y):

Adicionando um offset t x , t y . Nova coordenada (x , y ):

( x = x + t x

y = y + t y Notação matricial: P = P + T:

P = x

y

, P = x

y

, T = t x

t y

(8)

Translação em Coordenadas Homogêneas

Permite translação com multiplicação de matrizes.

Sejam as coordenadas (x, y, h) e um offset t x , t y . A nova coordenada é x h , y h , h

:

Nova coordenada

x h y h h

 =

1 0 t x 0 1 t y 0 0 1

| {z }

Matriz de translação

x h y h h

Coordenada original

(9)

Translação em Coordenadas Homogêneas

Quando h = 1, voltamos ao sistema de coordenadas cartesiano:

 

 

x h = (1 · x h + 0 · y h + t x · h) =x h = x h + t x y h = 0 · x h + 1 · y h + t y · h

= ⇒ y h = y h + t y

h = (0 · x h + 0 · y h + 1 · h) =h = 1

(10)

Translação em Coordenadas Homogêneas

Portanto, quando h = 1, as coordenadas cartesianas são um caso particular de coordenadas homogêneas:

P = T t x , t y

· P

x y 1

 =

1 0 t x 0 1 t y

0 0 1

x y 1

(11)

Escala

Altera o tamanho de um objeto por um dado fator:

(12)

Escala

Considerando uma coordenada (x, y):

Fator de escala s x , s y . Nova coordenada (x , y ):

( x = x · s x y = y · s y Notação matricial:

P = S · P x

y

=

s x 0 0 s y

x

y

(13)

Escala em Coordenadas Homogêneas

P = S s x , s y

· P Nova coordenada

x y 1

 =

s x 0 0 0 s y 0

0 0 1

| {z }

Matriz de escala

x y 1

Coordenada original

s x e s y devem ser maiores que zero.

Se s x > 1 e s y > 1 o objeto aumenta.

Se s x < 1 e s y < 1 o objeto diminui.

Se s x = s y a escala é uniforme.

Se s x ̸= s y a escala é diferencial.

(14)

Rotação

Move o objeto ao redor de um eixo em um ângulo:

(15)

Rotação

Rotacionamos (x, y) a partir da origem do sistema de coordenadas:

(16)

Rotação

Considerando uma coordenada (x, y):

O raio r é constante, ϕ é o ângulo original de P = (x, y) e θ é o ângulo de rotação.

Nova coordenada (x , y ):

( cos (ϕ + θ) = x r

= ⇒ x = r cos (ϕ + θ) sen (ϕ + θ) = y r

= ⇒ y = r sen (ϕ + θ)

Soma de ângulos:

cos (α + β) = cos α · cos β − sen α · sen β

sen (α + β) = cos α · sen β + sen α · cos β

(17)

Rotação

Portanto:

( x = r cos ϕ · cos θ − r sen ϕ · sen θ y = r cos ϕ · sen θ + r sen ϕ · cos θ Descrevendo P por coordenadas polares:

x = r cos ϕ, y = r sen ϕ Por substituição:

( x = x cos θ − y sen θ y = x sen θ + y cos θ Na forma matricial:

P = R · P x

y

=

cos θ − sen θ sen θ cos θ

x

y

(18)

Rotação em Coordenadas Homogêneas

P = R (θ) · P Nova coordenada

x y 1

 =

cos θ − sen θ 0 sen θ cos θ 0

0 0 1

| {z }

Matriz de rotação

x y 1

Coordenada original

(19)

Matriz de Transformação

A grande vantagem de coordenadas homogêneas é que uma sequência de transformações pode ser representada em uma única matriz:

P = M 2 · M 1 · P

= (M 2 · M 1 ) · P

= M · P

A transformação é dada por M em vez de M 1 e M 2 .

(20)

Escala com ponto de referência

1. Translação do objeto para a origem considerando o ponto de referência x f , y f . 2. Transformação de escala.

3. Translação do objeto para a posição original.

1

z }| {

1 0 x f 0 1 y f 0 0 1

2

z }| {

s x 0 0 0 s y 0

0 0 1

3

z }| {

1 0 −x f 0 1 −y f

0 0 1

=

s x 0 x f (1 − s x ) 0 s y y f 1 − s y

0 0 1

| {z }

Matriz de transformação final

(21)

Rotação com ponto de referência

1. Translação do objeto para a origem considerando o ponto de referência x f , y f . 2. Transformação de rotação.

3. Translação do objeto para a posição original.

1

z }| {

1 0 x r 0 1 y r 0 0 1

2

z }| {

cos θ − sen θ 0 sen θ cos θ 0

0 0 1

3

z }| {

1 0 −x r 0 1 −y r

0 0 1

=

cos θ − sen θ x rx r cos θ + y r sen θ sen θ cos θ y ry r cos θ − x r sen θ

0 0 1

| {z }

Matriz de transformação final

(22)

Em Resumo

Dada uma matriz de transformação qualquer M.

Dadas as coordenadas P.

Novas coordenadas são P = M · P.

Simples multiplicação de matrizes.

Podemos gerar transformações compostas a partir de translação, escala e

rotação.

(23)

Entretanto

Multiplicação de matrizes pode não ser comutativa, isto é, M 2 · M 1 ̸= M 1 · M 2 :

(24)

Reflexão

y = 0 :

1 0 0

0 −1 0

0 0 1

 , x = 0 :

−1 0 0

0 1 0

0 0 1

 , x = 0 e y = 0 :

−1 0 0 0 −1 0

0 0 1

(25)

Cisalhamento

Cisalhamento (shearing) na direção de x:

1 sh x 0

0 1 0

0 0 1

(26)

Transformações Geométricas 3D

(27)

Transformações Geométricas 3D

São extensões de métodos 2D.

Porém incluindo a coordenada z.

São representadas por matrizes 4 × 4.

(28)

Translação

P = T · P

x y z 1

=

1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1

x y z 1

(29)

Escala

P = S · P

x y z 1

=

s x 0 0 0 0 s y 0 0 0 0 s z 0

0 0 0 1

x y z 1

(30)

Rotação

P = R z (θ) · P

x y z 1

=

cos θ − sen θ 0 0 sen θ cos θ 0 0

0 0 1 0

0 0 0 1

x y z 1

(31)

Rotação

P = R x (θ) · P

x y z 1

=

1 0 0 0

0 cos θ − sen θ 0 0 sen θ cos θ 0

0 0 0 1

x y z 1

(32)

Rotação

P = R y (θ) · P

x y z 1

=

cos θ 0 sen θ 0

0 1 0 0

− sen θ 0 cos θ 0

0 0 0 1

x y z 1

(33)

Transformações Geométricas em OpenGL

Por padrão, OpenGL trabalha com coordenadas homogêneas em 3D (x, y, z, h).

Para atividades com objetos 2D:

h = 1.

z = 0.

(34)

Material de base para a aula

Transformação Geométrica 3D. Fernando Paulovich. Slides SCC 250 – Computação Gráfica, 2010.

Hughes, J. F., Van Dam, A., Foley, J. D., McGuire, M., Feiner, S. K., & Sklar, D. F.

(2014). Computer graphics: principles and practice. Terceira Edição. Pearson Education.

Computação Gráfica: Aulas 03 e 04. Slides de Ricardo M. Marcacini. Disciplina

SCC0250/0650, ICMC/USP, 2021.

(35)

Exercício para cômputo de presença

O objeto TeaPot (também chamado Bule de Newell) é um modelo criado em 1975 por Martin Newell como parte de sua pesquisa em computação gráfica na

Universidade de Utah.

(36)

Exercício para cômputo de presença

Crie um programa (em C/C++, Java ou Python) que modele este objeto (o conjunto de vértices que o descreve está disponível em

https://github.com/kretash/UtahTeapot) usando a primitiva

GL_TRIANGLES. Aplique transformações para alterar o objeto de modo a

posicioná-lo da forma que considerar melhor e gere a matriz de transformação

correspondente.

Referências

Documentos relacionados

Com o objetivo de avaliar a qualidade fisiológica de sementes de milho armazenadas em espigas, pelo uso de repelentes naturais, como Eucalipto Citriodora (Eucalyptus

De fato, transformações afins estão entre as ferramentas matemáticas mais fundamentais em computação gráfica;.. Um uso claro de transformações geométricas é simplificar

• Exercício: Determinar o novo referencial depois de translacionar o original de uma unidade em cada eixo, depois rodá‐lo 90 graus em torno do novo eixo dos yy, translacionar 1

A matriz de transformação indica as transformações geométricas operadas sobre um ponto para levar para outro local geométrico (outro ponto), ou seja, pode ser

BREEAM® ne overava poseban proizvod, ali korišćenje S-G Rigips rešenja može doprineti Vašem budućem. projektu da osvoji

28 Para evitar que o porta filtro transborde, volte a colocar a balão de vidro na placa num prazo.. de

23 Si va a preparar menos de 5 tazas de café, pulse el botón e para activar la función de fuerza de preparación. En la pantalla aparecerá e (consulte “Fuerza de preparación

Quando o pai novamente pode perceber que ali, onde via a síndrome, havia antes de tudo um bebê, que precisava de seus cuidados e carinho para se fazer cumprir a promessa de “vir