geometria ppt

Upload: marcusferraz

Post on 11-Jul-2015

61 views

Category:

Documents


0 download

TRANSCRIPT

Introduo Computao Grfica Geometria Claudio Esperana Paulo Roma Cavalcanti Geometria Afim Usa como elementos bsicos pontos, vetores e escalares Ponto: Denota posio no plano Vetor: Denota deslocamento, isto , inclui a noo de direo e magnitude Ambos so normalmente expressos por pares de coordenadas (em 2D) mas no so a mesma coisa x y P v ) , () , (v vP Py x vy x P==Operaes com Pontos e Vetores (2D) Soma de vetores t = v + u Multiplicao de vetor por escalar u = 2 v Subtrao 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 Combinaes Afim Maneira especial de combinar pontos Para 2 pontos P e Q poderamos ter uma combinao afim R = (1 o)P +oQ= P +o(P Q) 1 onde...12 2 1 1=+ + +=niin nP P Poo o oP Q R= P+o(P Q) P Q 0 < o < 1 o < 0 o > 1 Combinaes Convexas Combinaes afim onde se garante que todos os coeficientes oi so positivos (ou zero) Usa-se esse nome porque qualquer ponto que uma combinao convexa de n outros pontos pertence envoltria convexa desses pontos P1 P2 P3 P4 P5 Q Transformaes Transformao uma funo que mapeia pontos de um espao Euclidiano em outros (ou possivelmente os mesmos) pontos do mesmo espao. Se uma transformao linear, ento Se um conjunto de pontos est contido em uma reta, depois de transformados eles tambm estaro contidos sobre uma reta. Se um ponto P guarda uma relao de distncia com dois outros pontos Q e R, ento essa relao de distncia mantida pela transformao. Transformao mapeia origem na origem? Sim: Transformao Linear No: Transformao Linear Afim: Translaes so permitidasTransformaes Lineares em 2D Uma transformao linear Uma transformao linear afim + =+ =dy cx yby ax x''+ + =+ + =f dy cx ye by ax x''Forma Matricial Mais conveniente para uso em um computador. Sejam Ento uma transformao linear afim pode ser escrita T (P ) = Ponde ((

=((

=((

=((

=feDd cb aAyxPyxP '''D P A P + = 'Transformando Vetores Um vetor no est atrelado a um ponto no espao Uma transformao linear afim aplicada a um vetor no inclui translao Prova: Seja V um vetor e V sua imagem sob a transformao linear afim, ento: ' ' ' P Q V P Q V = =V AP Q AD P A D Q AP Q V = =+ + = =) () ( ) (' ' 'Coordenadas Homogneas A transformao de vetores operacionalmente diferente da de pontos Coordenadas homogneas permitem unificar o tratamento Problema levado para uma dimenso superior: Coordenada extra w= 0 para vetores e =1 p/ pontos Termos independentes formam uma coluna extra na matriz de transformao ((((

((((

=((((

1 1 0 0 1''yxf d ce b ayx((((

((((

=((((

0 1 0 0 0''yxf d ce b ayxCoordenadas Homogneas - Interpretao xywPlano1 w=Plano0 w=Coordenadas Homogneas: Propriedades Operaes sobre pontos e vetores so legaisse e somente se o resultado em coordenadas homogneas possui em sua ltima coordenada o valor 0 (vetor) ou 1 (ponto). Legal : (Consider the last coordinate only) escalar vetor vetor: o[, 0] = [, 0] vetor + vetor vetor: [, 0] + [, 0] = [, 0] ponto + vetor ponto:[, 1] + [, 0] = [, 1] ponto ponto vetor: [, 1] [, 1] = [, 0] combinao afim (op + |q): o[, 1] + |[, 1] = [, o+|],(vlida s se o+| = 1) Ilegal : ponto + ponto [, 1] + [, 1] = [, 2]vetor ponto [, 0] - [, 1] = [, -1] escalar ponto o[, 1] = [, o] Geometria Euclidiana Extenso da geometria afim pela adio de um operador chamado produto interno Produto interno um operador que mapeia um par de vetores em um escalar. Tem as seguintes propriedades: Positividade : (u,u) > 0 e (u,u) = 0 sse u=0 Simetria: (u,v) = (v,u) Bilinearidade: (u,v+w)= (u,v)+ (u,w) e (u,ov)= o(u,v) Geometria Euclidiana Normalmente usamos o produto escalar como operador de produto interno: Comprimento de um vetor definido como: Vetor unitrio (normalizado): == dii iv u v u1 v v v =vvv= Geometria Euclidiana Distncia entre dois pontos P e Q =|P Q | O ngulo entre dois vetores pode ser determinado por Projeo 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 1v uv uv uv u ngulo =||.|

\|= 1 2 1u u u vv vv uu ==v u u1 u2 Produto Vetorial (3D) Permite achar um vetor perpendicular a outros dois dados til na construo de sistemas de coordenadas z y xz y xx y y xz x x zy z z yv v vu u uk j iv u v uv u v uv u v uv u =((((

= Propriedades (assume-se u, v linearmente independentes): Antisimetria: u v = v u Bilinearidade: u (ov) = o (u v)eu (v + w) = (u v) + (u w) u v perpendicular tanto a u quanto a v O comprimento de u v igual a rea do paralelogramo definido porue v, isto , | u v | = | u | | v | sin u u v uv . Orientao Orientao de 2 pontos em 1D P1 < P2 , P1 = P2 ou P1 > P2

Orientao de 3 pontos em 2D O percurso P1 , P2 , P3 feito no sentido dos ponteiros do relgio, no sentido contrrio ou so colineares P1 P3 P2 P3 P1 P2 P3 P2 P1 Or (P1, P2, P3) = +1Or (P1, P2, P3) = -1Or (P1, P2, P3) = 0Orientao Orientao de 4 pontos em 3D O percurso P1 , P2 , P3 , P4 define um parafuso segundo a regra da mo direita, mo esquerda ou so coplanares P1 P4 P2 Or (P1, P2, P3, P4) = +1P3 O conceito pode ser estendido a qualquer nmero de dimenses ... Computando orientao A orientao de n+1 pontos em um espao n-dimensional dado pelo sinal do determinante da matriz cujas colunas so as coordenadas homogneas dos pontos com o 1 vindo primeiro |||.|

\|=3 2 13 2 1 3 2 1 21 1 1sign ) , , ( Ory y yx x x P P P|||||.|

\|=4 3 2 14 3 2 14 3 2 14 3 2 1 31 1 1 1sign ) , , , ( Orz z z zy y y yx x x xP P P PModelando Transformaes Uma t.l.a. em 2D pode ser definida se dispusermos da imagem de 3 pontos do domnioP PQQRRxy+ + =+ + =+ + =+ + =+ + =+ + =f y d x c ye y b x a xf y d x c ye y b x a xf y d x c ye y b x a xR R RR R RQ Q QQ Q QP P PP P P. .. .. .. .. .. .''''''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. Ento, Um ponto P dado por coordenadas xP e yP tais que Um vetor V dado por coordenadas xV e yV tais que O Y y X x PP P+ + = . .Y y X x VV V. . + =Mudana 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 xP P+U u T tP P+Mudana 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 tO Y y X x Y y X x u Y y X x tQ U u T t PQ U P T P Q U P T PQ Q U U P T T PP P+ + + + + + =+ + + + + + =+ + =). . . ( ). . . () . . ( ) . . .( ) . . .(. .Q U P T P Px x u x t x + + = . .Q U P T P Py y u y t y + + = . .Logo, Mudana de Sistema de Coordenadas Matricialmente: Usando coordenadas homogneas: Para resolver o problema inverso: ((

+((

((

=((

QQPPU TU TPPyxuty yx xyx(((

((((

=(((

11 0 01PPQ U TQ U TPPuty y yx x xyx(((

((((

=(((

11 0 011PPQ U TQ U TPPyxy y yx x xutTransformaes em 3D Vetores e pontos em 3D Transformao linear afim (((((

=0zyxVVVV(((((

=1zyxPPPP(((((

=1 0 0 0l i h gk f e dj c b aTTransformaes Rgidas No modificam a forma (dimenses/ngulos) do objeto So compostas de uma rotao e uma translao (((((

=1 0 0 0l i h gk f e dj c b aTSubmatriz de Rotao Vetor deTranslao Translao ((

=(((((

=1 01 0 0 01 0 00 1 00 0 13t ItttTzyxt Pt Pt Pt PPPPtttP T Pz zy yx xzyxzyx+ =(((((

+++=(((((

(((((

= =1 1 1 0 0 01 0 00 1 00 0 1' Observe que translaes so comutativas: P + t + v = P + v + t x y z Rotao em torno do eixo Z Podemos ver que o vetor (1,0,0)T mapeado em (cos o, sen o, 0)T e que o vetor (0,1,0)T mapeado em(- seno, cos o, 0)To x y cos o cos o sen o - sen o x y x y z Rotao em torno do eixo Z Outra maneira de ver: oosincosr Pr Pyx==uoPPxyrr Sabemos que ) sin() cos(u ou o+ ='+ ='r Pr Pyx Ento u o u ou o u ocos sin sin cossin sin cos cosr r Pr r Pyx+ =' ='u uu ucos sinsin cosy x yy x xP P PP P P+ =' =' Ou, finalmente, Rotao em torno dos eixos coordenados Similarmente, em torno dos eixos X e Y (((((

1 0 0 00 1 0 00 0 cos sin0 0 sin cosu uu u(((((

1 0 0 00 cos sin 00 sin cos 00 0 0 1u uu u(((((

1 0 0 00 cos 0 sin0 0 1 00 sin 0 cosu uu u Rotao em torno de Z dada pela matriz Rotaes em geral Qualquer rotao pode ser definida por um eixo de rotao dado pelo vetor unitrio u = (x, y, z)T e um ngulo de rotao o Seja S a matriz Ento a submatriz de Rotao M dada por ((((

=000Sx yx zy zS sin ( ) uu I )( (cos uu MT T) + + = o oInclinao (shear) uma transformao de deformao onde um eixo entortado em relao aos demais x y z x y z z Se o vetor unitrio do eixo z levado em [Shx Shy 1 0]T, ento a matriz de transformao dada por (((((

=1 0 0 00 1 0 00 1 00 0 1yxinclinaoShShTEscala Especificada por trs fatores (Sx, Sy , Sz) que multiplicam os vetores unitrios x, y, z Escala no uma transformao rgida, Escala uniforme (Sx = Sy = Sz) entretanto, uma operao ortogonal ou homottica, isto , preserva os ngulos Para obter reflexo em torno do plano z=0, usar fatores de escala (1, 1, -1) (((((

=1 0 0 00 0 00 0 00 0 0zyxescalaSSSTx y z x y z Composio de transformaes em 3D Em nossa notao, usamos pr-multiplicao: P = Tx P Para compor 2 transformaes temos: Se P = T1 x Pe P = T2 x P , ento, P = T2 x T1 x P1T2T1 2T T