Você está na página 1de 42

CC222 Viso Computacional Geometria Projetiva

Instituto Tecnolgico de Aeronutica Prof. Carlos Henrique Q. Forster Sala 121 IEC ramal 5981

Tpicos da aula
Rotao em 2D, Escala e Reflexo Deformao do quadrado unitrio Corpo rgido em 2D Geometria Projetiva e Coordenadas homogneas Dualidade Combinao de Transformaes Classes de Transformaes

CC222 Viso Computacional ITA IEC

Geometria Projetiva-2/42

Livros para acompanhar essa aula


Mathematical Elements for Computer Graphics (2nd edition) D. F. Rogers, J. A. Adams McGraw-Hill Captulos 2 e 3 pp 61-206 Fundamentos de Geometria Computacional Resende, R. J., Stolfi, J. IX Escola de Computao, Recife, 1994 Captulo 2 pp 25-76

CC222 Viso Computacional ITA IEC

Geometria Projetiva-3/42

Rotao em 2D
Rotao de 90 graus anti-horria

0 1 x = y T = y = x 1 0
Exemplo

3 4 2 P= 1 1 1 0 1 3 4 2 1 1 1 P = 1 1 1 = 3 4 2 1 0
Nova rotao, resulta rotao de 180 graus

0 1 1 1 1 0 1 0 1 1 0 P = 3 4 2 = 1 0 1 0 P = 0 1 P 1 0
CC222 Viso Computacional ITA IEC Geometria Projetiva-4/42

Forma Geral da Rotao (em torno da origem)

x = r cos y = r sin x = r cos( + ) y = r sin( + ) cos( + ) = cos cos sin sin sin( + ) = cos sin + sin cos

r
y r x
sin x cos y
Geometria Projetiva-5/42

x = r cos cos r sin sin y = r cos sin + r sin cos x = x cos y sin x cos y = sin y = x sin + y cos
CC222 Viso Computacional ITA IEC

Propriedades da rotao

cos T = sin
Determinante

sin cos

rotao por no sentido anti-horrio em torno da origem

det T = cos 2 + sin 2 = 1

Inversa: rotao por -

cos( ) = cos , sin ( ) = sin


1

cos = sin

sin cos
cos sin + cos sin 1 0 = 2 2 0 1 cos + sin

cos 2 + sin 2 T 1T = cos sin + cos sin


Notar que

T T = T 1 , propriedade de matriz ortogonal


Geometria Projetiva-6/42

CC222 Viso Computacional ITA IEC

Reflexo

1 0 T = 0 1 1 0 T = 0 1 0 1 T = 1 0
Exemplo

reflexo sobre o eixo x.

reflexo sobre o eixo y.

reflexo sobre a reta x=y.

7 6 1 0 8 7 6 8 0 1 1 3 2 = 1 3 2
Propriedades: Determinante -1. Dois reflexos sobre retas passando pela origem compem uma rotao. A matriz do reflexo ortogonal. CC222 Viso Computacional ITA IEC Geometria Projetiva-7/42

Escala

2 0 T = 0 2

uniforme

1 / 2 0 T = 0 3 a 0 T = 0 d

no-uniforme

forma geral da escala, a>1 amplia ou expande, a<1 reduz ou comprime

Se a=d, ento escala uniforme.

CC222 Viso Computacional ITA IEC

Geometria Projetiva-8/42

Composio de Transformaes
Multiplicao de matrizes associativa

PF = T4T3T2T1 P0 P = T1 P0 , P2 = T2 P = T2T1 P0 , K 1 1
Ento

PF = TP0 , onde T = T4T3T2T1

CC222 Viso Computacional ITA IEC

Geometria Projetiva-9/42

Transformao do Quadrado Unitrio

a b 0 1 0 1 0 a b a + b c d 0 0 1 1 = 0 c d c + d
rea do paralelogramo

a b A = ad bc = det T = c d
(a+b,c+d)

(b,d) 1 0 1

(a,c)

CC222 Viso Computacional ITA IEC

Geometria Projetiva-10/42

Transformao de corpo rgido


Que transformaes levam retas perpendiculares em retas perpendiculares?

Sejam os vetores

x1 x2 v1 = e v2 = y2 . y1 v1 v2 = ( x1 x2 + y1 y2 )
T

Seu produto escalar

e o vetorial

v1 v2 = ( x1 y2 y1 x2 ) .

ax2 + by2 ax1 + by1 v1 = e v2 = cx + dy 2 2 cx1 + dy1


Produto escalar deve ser o mesmo

v1 v2 = (a 2 + c 2 )( x1 x2 ) + (b 2 + d 2 )( y1 y2 ) + (ab + cd )( x1 y2 + y1 x2 )
T

Produto vetorial deve ser o mesmo

v1 v2 = (ad cb)( x1 y2 y1 x2 )
CC222 Viso Computacional ITA IEC Geometria Projetiva-11/42

Condies para preservar a magnitude dos vetores e seus ngulos

a2 + c2 = 1 b2 + d 2 = 1 ab + cd = 0
ad cb = 1
Condio de que vetores (a,c) e (b,d) unitrios e ortogonais

Condio do produto vetorial

det T = 1

CC222 Viso Computacional ITA IEC

Geometria Projetiva-12/42

Geometria Projetiva
Coordenadas cartesianas
Funo que biunivocamente mapeia um par de nmeros reais nos pontos do plano. Desvantagens do uso de coordenadas cartesianas No suportam o conceito de pontos no infinito, o que gera muitos casos particulares (por exemplo, para encontrar a interseco de duas retas deve-se considerar se so concorrentes, coincidentes ou paralelas). No representam dualidade entre pontos e retas. Representao inconveniente para transformaes geomtricas.

CC222 Viso Computacional ITA IEC

Geometria Projetiva-13/42

Coordenadas homogneas

Se

X Y

so coordenadas em

ento

x y w

tais que

x X= w

y Y= e w

com o peso

w>0

so as coordenadas homogneas do ponto representado.


2

H mltiplas representaes possveis para um ponto em

da forma

wX wY , w > 0 w

(qualquer mltiplo representa o mesmo ponto)

Questo: o que acontece com [x

y w]

se x e y permanecem constantes e w

tende a zero? E se w tende ao infinito? CC222 Viso Computacional ITA IEC Geometria Projetiva-14/42

Pontos no infinito

x y w

com x e y constantes e w tendendo a zero, o ponto se afasta infinitamente da

origem na direo do vetor (x,y).

x y 0 (e seus mltiplos) representa o ponto infinito na direo do vetor (x,y)

CC222 Viso Computacional ITA IEC

Geometria Projetiva-15/42

x y 0 representa o ponto no infinito antpoda do ponto 0 0 0

x y 0

A tripla

considerada invlida.

CC222 Viso Computacional ITA IEC

Geometria Projetiva-16/42

Pontos do outro lado do plano


O valor de w negativo pode ser interpretado como um ponto que atravessou o infinito (est alm do infinito).

x y w corresponde ao ponto cartesiano x x y = y w w

x / w y / w

se estiver na frente do plano (aqum),

isto , se w>0, ou no seu verso se w<0 (alm). Dois pontos que diferem no sinal de w no so coincidentes, mas antpodas

x x y = y 0 0

CC222 Viso Computacional ITA IEC

Geometria Projetiva-17/42

Retas
No plano cartesiano a reta definida por trs coeficientes A, B e C tais que, somente se um ponto

X P= Y

pertence reta, ento

AX + BY + C = 0

(equao cartesiana da reta) Reparar que mltiplos de (A,B,C) representam a mesma reta. Escrevendo P em coordenadas homogneas:

x y , A x + B y + C = 0 P= w w , multiplicando por w... w Ax + By + Cw = 0 (equao homognea da reta)


CC222 Viso Computacional ITA IEC Geometria Projetiva-18/42

Uma reta definida por 3 coeficientes homogneos <X,Y,W> sendo que o ponto genrico

P = [x

y w]

est na reta se e s se

Xx + Yy + Ww = 0
Exemplo A reta <2,3,1> passa pelos pontos tais que

2 x + 3 y + w = 0 , ou seja, 2 X + 3Y + 1 = 0
Exerccios

em coordenadas cartesianas.

Qual a equao cartesiana da reta com coeficientes <3,5,2>? Quais os coeficientes homogneos da reta 3X-2Y=6 (eq cartesiana)? Quais os coeficientes homogneos dos eixos X e Y? Em que condies a reta horizontal? Vertical? Passa pela origem? Quais as coordenadas homogneas da origem do plano cartesiano? CC222 Viso Computacional ITA IEC Geometria Projetiva-19/42

Pontos no infinito de uma reta

Xx + Yy + Ww = 0

satisfeita pelos pontos infinitos

Y X 0

Y X 0 . x y 0 .

Toda reta paralela a um vetor

x y

contm os pontos infinitos

x y 0

Duas retas de 2 so paralelas entre si se e somente se as retas correspondentes de 2 (o plano projetivo orientado) passam pelos mesmos pontos no infinito. Se uma reta passa por um ponto

P , tambm passa por seu antpoda P .

CC222 Viso Computacional ITA IEC

Geometria Projetiva-20/42

Uma reta de 2 representada por duas retas euclidianas superpostas, uma no aqum e outa no alm, com os mesmos coeficientes cartesianos, mais dois pontos infinitos, nas direes paralelas s retas. A reta divide o plano
2

negativo de acordo com o sinal da expresso Xx + Yy + Ww . Se um ponto est do lado positivo da reta, seu antpoda estar no lado negativo.

em duas metades (os lados da reta) o lado positivo e o lado

aqum

pontos infinitos

alm
Geometria Projetiva-21/42

CC222 Viso Computacional ITA IEC

Teste de ponto contra reta


De que lado da reta est um ponto? Verificar o sinal do produto escalar.

rp = sgn( Xx + Yy + Ww)

-1 do lado negativo, +1 do lado positivo ou 0 se sobre a reta.

Se multiplicarmos os coeficientes de r por um nmero negativo, o valor de negado (os lados positivos e negativos da reta se invertem). As retas r = X , Y , W e r = iguais: diferem na sua orientao.

rp

fica

X ,Y ,W

so coincidentes, mas no so

CC222 Viso Computacional ITA IEC

Geometria Projetiva-22/42

Reta no infinito

Ax + By + Cw = 0

com A=B=0.

Esta equao no aceita por nenhum ponto de R2 (ou por todos se C=0).

Triplas da forma pontos infinitos:

0 0 W

correspondem a uma das retas opostas que contm todos os

0 x + 0 y + 1w = 0 w = 0

a reta contm todos os pontos da forma

x y 0

CC222 Viso Computacional ITA IEC

Geometria Projetiva-23/42

A reta no infinito (com aqum positivo) denominada .

0 0 = 0 e = 0 1 1
Duas retas no-coincidentes se interceptam em dois pontos antipodais. Dois pontos no-coincidentes determinam exatamente duas retas opostas entre si. Essas regras funcionam para qualquer tipo de ponto (finito ou infinito) e reta (paralelas ou no, finita ou infinita).

CC222 Viso Computacional ITA IEC

Geometria Projetiva-24/42

Colinearidade de 3 pontos

x0 x1 x2

y0 1 y1 1 = 0 y2 1
convertido em coord homogneas

x0 / w0 x1 / w1 x2 / w2

y0 / w0 1 y1 / w1 1 = 0 y2 / w2 1

Multiplicando-se as linhas por determinante por

w0 , w1 , w2

respectivamente, multiplica-se o

w0 w1w2 . Assim:

x0 x1 x2

y0 y1 y2

w0 w1 = 0 w2
vlida para quais quer pontos (finitos ou infinitos).

CC222 Viso Computacional ITA IEC

Geometria Projetiva-25/42

Reta por 2 pontos

x0 x1 x

y0 y1 y

w0 w1 = 0 w

y0 y1

w0 w1

x0 x1

w0 w1

y+

x0 x1

y0 y1

w=0

Reta que passa por

p0

p1

y0 w1 y1w0 p0 p1 = x0 w1 + x1w0 x0 y1 x1 y0

(join produto vetorial)

(vale para qualquer pontos no coincidentes, no antipodais) Exerccio: Determinar a reta que passa pela origem e por (X,Y).

CC222 Viso Computacional ITA IEC

Geometria Projetiva-26/42

Ponto determinado por duas retas

r0 = X 0 , Y0 , W0 p = r0 r1

e r1 = X 1 , Y1 , W1

(meet) a interseco das retas. (X,Y) em coordenadas cartesianas.

X 0 X + Y0Y = W0 X 1 X + Y1Y = W1 , pela regra de Cramer: W1 Y1 X= X 0 Y0 X1 Y1 W0 Y0 e Y= X 0 W0 X 1 W1 X 0 Y0 X1 Y1

Fazendo W=1 e multiplicando X, Y e W pelo denominador comum, obtemos as coordenadas homogneas do ponto.

CC222 Viso Computacional ITA IEC

Geometria Projetiva-27/42

W0Y0 + W1Y0 p = r0 r1 = W0 X 1 W1 X 0 X 0Y1 X 1Y0

(meet produto vetorial)

Se as duas retas forem paralelas, a soluo ser um ponto infinito.

Dualidade da Geometria Projetiva


O princpio da dualidade permite traduzir mecanicamente muitas frmulas geomtricas que envolvem pontos em outras frmulas que envolvem retas e vice-versa. O mesmo vale para teoremas, algoritmos e estruturas de dados.

CC222 Viso Computacional ITA IEC

Geometria Projetiva-28/42

Segmentos e tringulos
A combinao convexa em coordenadas homogneas no necessita limitar a soma dos pesos em 1. A combinao convexa para cada deles no nulo.

positivo, e pelo menos um

Um segmento definido como a combinao convexa de dois pontos. Um tringulo definido como a combinao convexa de 3 pontos, o que inclui os segmentos de reta que formam os lados do tringulo.

Segmento:

0 x0 + 1 x1 y + y 1 1 0 0 0 w0 + 1w1 . Tringulo

0 x0 + 1 x1 + 2 x2 y + y + y 1 1 2 2 0 0 0 w0 + 1w1 + 2 w2 .

No se aconselha interpretar o ponto correspondente a cada tupla de independentemente, mas o conjunto das possveis tuplas. CC222 Viso Computacional ITA IEC

Geometria Projetiva-29/42

Orientao de 3 pontos

x0 ( p0 , p1 , p2 ) = sgn x1 x2

y0 y1 y2

w0 w1 w2

Orientao positiva ou negativa. Se for zero, os pontos so colineares.

CC222 Viso Computacional ITA IEC

Geometria Projetiva-30/42

Projetividades (ou Transformaes Projetivas)


So transformaes do plano T2 ao plano T2. Preserva a colinearidade de pontos. Projetividades so transformaes lineares inversveis sobre coordenadas homogneas. No plano podem ser representadas por matrizes 3x3 de determinante no-nulo.

f xx F = f yx f wx

f xy f yy f wy

f xw f yw f ww

CC222 Viso Computacional ITA IEC

Geometria Projetiva-31/42

Formam-se duas classes de projetividades: As de determinante positivo (ou projetividades positivas), que preservam a orientao dos tringulos. As de determinante negativo (negativas), que invertem a orientao dos tringulos. Multiplicando-se a matriz F por um escalar positivo, continuamos representando a mesma transformao. ( F

p = F p

em coordenadas homogneas).

CC222 Viso Computacional ITA IEC

Geometria Projetiva-32/42

Translaes
Transformaes da forma

( X , Y ) a ( X + X 0 , Y + Y0 ) = ( X , Y ) + ( X 0 , Y0 )
Preservam distncias, direes e ngulos.

Translao que leva a origem para o ponto

[x0

y0

w0 ]

x xw0 + wx0 w0 y a yw + wy = 0 0 0 w ww0 0

0 w0 0

x0 x y0 y w0 w

Exerccio: Aplicar translao a um ponto infinito. Exerccio: Escrever a matriz que mapeia

( X 0 , Y0 )

em

( X 1 , Y1 ) .
Geometria Projetiva-33/42

CC222 Viso Computacional ITA IEC

Propriedades das transformaes j vistas


Translaes no podem ser representadas como transformaes lineares no plano cartesiano (s em coordenadas homogneas). So transformaes afins em coordenadas cartesianas. Rotaes preservam ngulos e distncias. Escalas uniformes preservam ngulos e direes. Escalas no-uniformes preservam direes verticais e horizontais. Reflexos preservam distncias, invertem ngulos

CC222 Viso Computacional ITA IEC

Geometria Projetiva-34/42

Cisalhamentos

( X , Y ) a ( X + Y , Y )

x 1 0 x y a 0 1 0 y w 0 0 1 w
paralelismo e reas)

(cisalhamento horizontal preserva coordenada Y,

x 1 y a w 0

0 0 x 1 0 y 0 1 w

(cisalhamento vertical)

CC222 Viso Computacional ITA IEC

Geometria Projetiva-35/42

Mais classes de transformaes


Isometrias ou transformaes isomtricas: rotaes, translaes e reflexos. Modelam movimentos rgidos no plano, preservam distncias e ngulos. Similaridades ou transformaes euclidianas: incluem as isometrias e escalas uniformes, preservam ngulos e razes entre distncias. Transformaes unitrias: incluem as isometrias e os cisalhamentos, preservam reas e paralelismo. Transformaes afins inversveis: preservam o paralelismo e (consequentemente) mapeiam pontos do infinito no infinito e pontos finitos em pontos finitos. Todas essas classes de transformaes so fechadas quanto inverso e composio.

(F G )1 = G 1 F 1 Propriedade:
CC222 Viso Computacional ITA IEC Geometria Projetiva-36/42

As similaridades tm a forma

a b b a 0 0

xd x yd y , 1 w

pelo menos a 0 ou b 0

As transformaes afins tm a forma

a b X e ( X , Y ) a (aX + bY + e, cX + dY + f ) = Y + f c d a b c d 0 0 e x f y 1 w

Ou

CC222 Viso Computacional ITA IEC

Geometria Projetiva-37/42

Aplicao de Projetividades em Retas

Xx + Yy + Ww = 0

rT p = 0
r T F 1 Fp = 0 ,
Mas Se

Fp = p .

r T p = 0 , ento r T = r T F 1

Assim, transpondo ambos os lados:

r = F T r

CC222 Viso Computacional ITA IEC

Geometria Projetiva-38/42

Exemplo
Rotao em torno de um ponto arbitrrio. Rotao por ngulo Rotao por

em torno do ponto

(m, n)

Translao de (m,n) origem.

.
sin cos
0 0 1 0 m 1 0 T3 = 0 1 n = T1 0 0 1 1

Translao da origem (m,n)

1 0 m cos T1 = 0 1 n T2 = sin 0 0 1 0

CC222 Viso Computacional ITA IEC

Geometria Projetiva-39/42

Exemplo: Rotao de 90 graus em torno de (4,3)

1 0 4 0 1 0 1 0 4 0 1 3 T = 1 0 0 T = 0 1 3 = T 1 T1 = 2 3 1 0 0 1 0 0 1 0 0 1 0 1 4 1 0 4 0 1 7 T = T3T2T1 = 1 0 3 0 1 3 = 1 0 1 0 0 1 0 0 1 0 0 1

CC222 Viso Computacional ITA IEC

Geometria Projetiva-40/42

Exemplo: Reflexo sobre uma reta arbitrria.

y = tan x + k
Transladar para que a reta passe pela origem Rotao para que a reta coincida com o eixo x Reflexo sobre eixo x Rotao inversa para corrigir a direo Translao inversa para corrigir a posio

1 0 0 T1 = 0 1 k 0 0 1

cos R1 = sin 0

sin cos 0

0 0 1

1 0 0 M = 0 1 0 0 0 1

CC222 Viso Computacional ITA IEC

Geometria Projetiva-41/42

T1

1 0 0 = 0 1 + k 0 0 1
1 1

R1

cos T = R1 = sin 0

sin cos
0

0 0 1

A seqncia de transformaes dada por

T = T1 R1 MR1T1

Exemplo: Reta

1 y = ( x + 4) , Pontos 2

2 4 2 4 6 6 1 1 1

CC222 Viso Computacional ITA IEC

Geometria Projetiva-42/42