• Nenhum resultado encontrado

Introdução à Computação Gráfica Geometria. Claudio Esperança Paulo Roma Cavalcanti

N/A
N/A
Protected

Academic year: 2021

Share "Introdução à Computação Gráfica Geometria. Claudio Esperança Paulo Roma Cavalcanti"

Copied!
34
0
0

Texto

(1)

Introdução à Computação Gráfica

Geometria

Claudio Esperança

Paulo Roma Cavalcanti

(2)

Pontos e Vetores (2D)

•  Ponto: Denota posição no plano

•  Vetor: Denota deslocamento, isto é, inclui a noção de

direção e magnitude

•  Ambos são normalmente expressos por pares de coordenadas (em 2D) mas não são a “mesma coisa”

x y P v

)

,

(

)

,

(

v v P P

y

x

v

y

x

P

=

=

!

(3)

Operações com Pontos e Vetores (2D)

•  Soma de vetores

t = v + u

•  Multiplicação de vetor por escalar

u = 2 v

•  Subtração de pontos

v = Q – P

•  Soma de ponto com vetor

Q = P + v x y v u x y v x y P v v Q

(4)

Transformações

•  Transformação é uma função que mapeia pontos de um espaço Euclidiano em outros (ou possivelmente os mesmos) pontos do mesmo espaço.

•  Se uma transformação é linear, então

w  Se um conjunto de pontos está contido em uma reta, depois de transformados eles também estarão

contidos sobre uma reta.

w  Se um ponto P guarda uma relação de distância com dois outros pontos Q e R, então essa relação de

distância é mantida pela transformação.

•  Transformação mapeia origem na origem?

w  Sim: Transformação Linear

w  Não: Transformação Linear Afim: Translações são permitidas

(5)

Transformações Lineares em 2D

•  Uma transformação linear

•  Uma transformação linear afim

⎩ ⎨ ⎧ + = + = dy cx y by ax x ' ' ⎩ ⎨ ⎧ + + = + + = f dy cx y e by ax x ' '

(6)

Forma Matricial

•  Mais conveniente para uso em um

computador. Sejam

•  Então uma transformação linear afim pode

ser escrita T (P ) = P

onde

⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = f e D d c b a A y x P y x P ' ' '

D

P

A

P

'

=

×

+

(7)

Transformando Vetores

•  Um vetor não está atrelado a um ponto no espaço •  Uma transformação linear afim aplicada a um vetor

não inclui translação

•  Prova: Seja V um vetor e Vsua imagem sob a

transformação linear afim, então:

'

'

'

Q

P

V

P

Q

V

=

=

V

A

P

Q

A

D

P

A

D

Q

A

P

Q

V

×

=

×

=

+

×

+

×

=

=

)

(

)

(

)

(

'

'

'

(8)

Coordenadas Homogêneas

•  A transformação de vetores é operacionalmente diferente da de pontos.

•  Coordenadas homogêneas permitem unificar o tratamento.

•  Problema é levado para uma dimensão superior:

w  w = 0 para vetores e w = 1 para pontos.

w  Termos independentes formam uma coluna extra na matriz de transformação.

×

=

1

1

0

0

1

'

'

y

x

f

d

c

e

b

a

y

x

×

=

0

1

0

0

0

'

'

y

x

f

d

c

e

b

a

y

x

(9)

Coordenadas Homogêneas - Interpretação

x

y

w

Plano w=1 Plano w=0

(10)

Modelando Transformações

•  Uma transformação linear afim em 2D pode ser definida a partir da imagem de 3 pontos:

P

P’

Q

Q’

R

R’

x

y

⎪⎪

+

+

=

+

+

=

+

+

=

+

+

=

+

+

=

+

+

=

f

y

d

x

c

y

e

y

b

x

a

x

f

y

d

x

c

y

e

y

b

x

a

x

f

y

d

x

c

y

e

y

b

x

a

x

R R R R R R Q Q Q Q Q Q P P P P P P

.

.

.

.

.

.

.

.

.

.

.

.

' ' ' ' ' '

(11)

Sistemas de coordenadas

•  Um sistema de coordenadas para Rn é definido por

um ponto (origem) e n vetores

•  Ex. Seja um sistema de coordenadas para R2 definido

pelo ponto O e os vetores X e Y. Então,

w  Um ponto P é dado por coordenadas xP e yP tais que

w  Um vetor V é dado por coordenadas xV e yV tais que

O

Y

y

X

x

P

=

P

.

+

P

.

+

Y

y

X

x

V

=

V

. +

V

.

(12)

Mudança de Sistema de Coordenadas

•  Se estabelecemos um outro sistema (ex.: Q/T/U), como computar as novas coordenadas dadas as antigas? X Y O U T Q P

Y

y

X

x

P

+

P

U

u

T

t

P

+

P

(13)

Mudança de Sistema de Coordenadas

•  Como computar as coordenadas de um ponto P = (xP, yP) em O/X/Y dadas as coordenadas de P em Q/T/U, isto é,

(tP, uP) ? O Y y y u y t X x x u x t O Y y X x Y y X x u Y y X x t Q U u T t P Q U P T P Q U P T P Q Q U U P T T P P P + + + + + + = + + + + + + = + + = ). . . ( ). . . ( ) . . ( ) . . .( ) . . .( . . Q U P T P P t x u x x x = . + . + Q U P T P P t y u y y y = . + . + Logo,

(14)

Mudança de Sistema de Coordenadas

•  Matricialmente:

•  Usando coordenadas homogêneas:

•  Para resolver o problema inverso: ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ + ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ × ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ Q Q P P U T U T P P y x u t y y x x y x ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ × ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ 1 1 0 0 1 P P Q U T Q U T P P u t y y y x x x y x ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ × ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − 1 1 0 0 1 1 P P Q U T Q U T P P y x y y y x x x u t

(15)

Transformações em 3D

•  Vetores e pontos em 3D

•  Transformação linear afim

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 0 z y x V V V V! ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 z y x P P P P ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 l i h g k f e d j c b a T

(16)

Transformações Rígidas

•  Não modificam a forma (dimensões /ângulos) do objeto

•  São compostas de uma rotação e uma translação

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 l i h g k f e d j c b a T Submatriz de Rotação Vetor de Translação

(17)

Translação

⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 3 t I t t t T z y x t P t P t P t P P P P t t t P T P z z y y x x z y x z y x + = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ × ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = × = 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 '

•  Observe que translações são comutativas:

P + t + v = P + v + t

x y

(18)

Rotação em torno do eixo Z

•  Podemos ver que o vetor (1,0,0)T é mapeado em:

(cos α, sen α, 0)T

•  e que o vetor (0,1,0)T é mapeado em:

(- sen α, cos α, 0)T α x y cos α cos α sen α - sen α x’ yx y z

(19)

Rotação em torno do eixo Z

•  Outra maneira de ver:

α

α

sin cos r P r P y x = = θ

α

P

P‘

x

y

r

r

•  Sabemos que

)

sin(

)

cos(

θ

α

θ

α

+

=

ʹ

+

=

ʹ

r

P

r

P

y x •  Então

θ

α

θ

α

θ

α

θ

α

cos sin sin cos sin sin cos cos r r P r r P y x + = ʹ − = ʹ θ θ θ θ cos sin sin cos y x y y x x P P P P P P + = ʹ − = ʹ •  Ou, finalmente,

(20)

Rotação em torno dos eixos coordenados

•  Similarmente, em torno dos eixos X e Y

⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − 1 0 0 0 0 1 0 0 0 0 cos sin 0 0 sin cos θ θ θ θ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − 1 0 0 0 0 cos sin 0 0 sin cos 0 0 0 0 1 θ θ θ θ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − 1 0 0 0 0 cos 0 sin 0 0 1 0 0 sin 0 cos θ θ θ θ

(21)

Rotações em geral

•  Qualquer rotação pode ser definida por um

eixo de rotação dado pelo vetor unitário

u = (x, y, z)

T

e um ângulo de rotação

α

•  Seja S a matriz

•  Então a submatriz de Rotação M é dada por

=

0

0

0

S

x

y

x

z

y

z

S

sin

(

)

uu

I

)(

(cos

uu

M

=

T

+

α

T

+

α

)

(22)

Inclinação (“shear”)

•  É uma transformação de deformação onde um eixo é “entortado” em relação aos demais

x y z x y z

•  Se o vetor unitário do eixo z é levado em [Shx Shy 1 0]T, então a

matriz de transformação é dada

por ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 0 1 0 0 0 1 0 0 0 1 y x inclinação Sh Sh T

(23)

Escala

•  Especificada por três fatores (Sx, Sy , Sz) que multiplicam os vetores unitários x, y, z.

•  Escala não é uma transformação rígida,

•  Escala uniforme (Sx = Sy = Sz) entretanto, é uma operação ortogonal ou homotética, isto é, preserva os ângulos.

•  Para obter reflexão em torno do plano z = 0, usam-se fatores de escala (1, 1, -1). ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 0 0 0 0 0 0 0 0 0 z y x escala S S S T x y z x y z

(24)

Composição de transformações em 3D

•  Em nossa notação, usamos pré-multiplicação:

w  P = T x P

•  Para compor 2 transformações temos:

w  Se P= T1 x P e P’’ = T2 x P, então, P’’ = T2 x T1 x P 1

T

T

2 1 2

T

T ×

(25)

Geometria Afim

•  Composta dos elementos básicos

w 

escalares

w 

pontos - denotam posição

w 

vetores - denotam deslocamento (direção e

magnitude)

•  Operações

w 

escalar · vetor = vetor

w 

vetor + vetor ou vetor – vetor = vetor

w 

ponto – ponto = vetor

(26)

Combinações Afim

•  Maneira especial de combinar pontos

•  Para 2 pontos P e Q poderíamos ter uma combinação afim R = (1 – α)P +αQ = P +α(Q – P) 1 onde ... 1 2 2 1 1 = + + +

= n i i n nP P P α α α α P Q R= P+α(P – Q) P Q 0 < α < 1 α < 0 α > 1

(27)

Combinações Convexas

•  Combinações afim onde se garante que todos

os coeficientes α

i

são positivos (ou zero)

•  Usa-se esse nome porque qualquer ponto que

é uma combinação convexa de n outros

pontos pertence à envoltória convexa desses

pontos

P1 P2 P3 P4 P5 Q

(28)

Geometria Euclidiana

•  Extensão da geometria afim pela adição de

um operador chamado produto interno

•  Produto interno é um operador que mapeia

um par de vetores em um escalar. Tem as

seguintes propriedades:

w 

Positividade : (u,u) ≥ 0 e (u,u) = 0 sse u=0

w 

Simetria: (u,v) = (v,u)

w 

Bilinearidade: (u,v+w)= (u,v)+ (u,w) e

(u,αv)= α(u,v)

(29)

Geometria Euclidiana

•  Normalmente usamos o produto escalar como operador de produto interno:

•  Comprimento de um vetor é definido como:

•  Vetor unitário (normalizado):

= = ⋅ d i i iv u v u 1 ! !

v

v

v

!

=

!

!

v v v ! ! = ˆ

(30)

Geometria Euclidiana

•  Distância entre dois pontos P e Q =|P – Q |

•  O ângulo entre dois vetores pode ser determinado por

•  Projeção ortogonal: dados dois vetores u e v, deseja-se decompor u na soma de dois vetores u1 e u2 tais que u1 é paralelo a v e u2 é perpendicular a v

) ˆ ˆ ( cos cos ) , ( 1 1 u v v u v u v u ângulo = ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎝ ⎛ ⋅ = − ! ! − ! ! ! ! 1 2 1

v

u

u

u

v

v

v

u

u

!

!

!

!

!

!

!

!

!

=

=

v u u1 u2

(31)

Produto Vetorial (3D)

•  Permite achar um vetor perpendicular a outros dois dados •  Útil na construção de sistemas de coordenadas

z y x z y x x y y x z x x z y z z y v v v u u u k j i v u v u v u v u v u v u v u ! ! ! ! ! = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ − − − = ×

•  Propriedades (assume-se u, v linearmente independentes): w  Antisimetria: u × v = – v × u

w  Bilinearidade: u × (αv) = α (u × v) e u × (v + w) = (u × v) + (u × w) w  u × v é perpendicular tanto a u quanto a v

w  O comprimento de u × v é igual a área do paralelogramo definido por u e v, isto é, | u × v | = | u | | v | sin θ

u v

u×v

(32)

Orientação

•  Orientação de 2 pontos em 1D

w  P1 < P2 , P1 = P2 ou P1 > P2

•  Orientação de 3 pontos em 2D

w  O percurso P1 , P2 , P3 é feito no sentido dos ponteiros do relógio, no sentido contrário ou são colineares

P1 P3 P2 P3 P1 P2 P3 P2 P1 Or (P1, P2, P3) = +1 Or (P1, P2, P3) = -1 Or (P1, P2, P3) = 0

(33)

Orientação

•  Orientação de 4 pontos em 3D

w 

O percurso P

1

, P

2

, P

3

, P

4

define um parafuso

segundo a regra da mão direita, mão esquerda

ou são coplanares

P1

P4 P2

Or (P1, P2, P3, P4) = +1

P3

•  O conceito pode ser

estendido a

qualquer número de

dimensões ...

(34)

Computando orientação

•  A orientação de n+1 pontos no Rn é dado pelo sinal do determinante da matriz cujas colunas são as

coordenadas homogêneas dos pontos com o 1 vindo

primeiro ⎟ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎜ ⎝ ⎛ = 3 2 1 3 2 1 3 2 1 2 1 1 1 sign ) , , ( Or y y y x x x P P P ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎞ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛ = 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 3 1 1 1 1 sign ) , , , ( Or z z z z y y y y x x x x P P P P

Referências

Documentos relacionados

9.6 Caso o documento apresentado no dia da prova (cujo número foi informado no Formulário de Inscrição) não permita a identificação adequada do candidato, o mesmo poderá

A nossa abordagem prepara as organizações para dar resposta aos desafios da introdução e da gestão do RGPD, respondendo a todas dúvidas iniciais, cobrindo todas as entidades

No caso do espaço euclidiano R n essa noção é muito mais simples pois existe o conceito natural de distância entre dois pontos, logo é possível considerar uma

O objeto do presente contrato é a execução pela CONTRATADA da CONTRATAÇÃO DE EMPRESA ESPECIALIZADA EM SERVIÇOS DE ELABORAÇÃO DE PROJETOS COMPLEMENTARES DE

A relação entre o turismo e o espaço urbano gera um processo denominado turistificação que, de forma simplificada, pode ser entendido como o processo de transformação de uma

No círculo trigonométrico, os eixos variam de –1 até +1, pois funcionam apenas com a circunferência de raio unitário5. Esses eixos dividem o círculo em quatro partes, chamadas

data de postagem dentro do prazo referido no subitem anterior, para: Seção Técnica de Desenvolvimento e Administração de Recursos Humanos do Câmpus de Dracena (Ref: Recurso em

raná, no uso de suas atribuições legais, com fulcro no artigo 55 inciso IX da Lei orgânica Municipal, tendo em vista a aprovação no Concurso Público Edital n° 001/2014,