A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Transformações Geométricas Rodrigo de Toledo UFRJ, CG1, 2010.2.

Apresentações semelhantes


Apresentação em tema: "Transformações Geométricas Rodrigo de Toledo UFRJ, CG1, 2010.2."— Transcrição da apresentação:

1 Transformações Geométricas Rodrigo de Toledo UFRJ, CG1,

2 Índice Exemplos de Transformações 2D Fórmulas e cálculos das transformações 2D Usando matriz de transformação (por que?) Coordenadas Homogêneas Concatenação de transformações Transformações 3D

3 Exemplos de Transformações 2D Translação Escala –uniforme –não uniforme Rebatimento por um eixo (espelhamento) Troca de eixos Rotação pela origem

4 Translação Translation of a point is simply vector addition x y P1P1 P2P2 P 2 = P =

5 Escala Scaling about the origin is scalar multiplication x y P1P1 P2P = 2 * 1111 P 2 = P 1 * 2

6 Rebatimento por um eixo (espelhamento) x = x y = -y

7 Troca de Eixos x = y y = x

8 Rotação pela Origem x´ = x.cos - y.sen y´ = x.sen + y.cos x y P = x´ y´ P´ = x y

9 Por que usar Matriz nas Transformações? Todas as transformações podem ser efetuadas através da multiplicação de matrizes (usando coordenadas homogêneas). As transformações podem ser aninhadas e resolvidas de modo a haver apenas uma matriz de multiplicação a ser aplicada. A característica descrita acima se torna muito importante quando a mesma seqüência de transformações deve ser aplicada para diversos pontos.

10 Multiplicação de Matrizes ab cd x y x y axby x = cxdy y = onde:

11 Uniform Scaling,, S s0 0s P x y MSP s0 0s x y sx sy,, I MIsP Ms x y

12 Non-uniform Scaling Note orientation shift in line s 1 0 0s 2 x y s 1 x s 2 y S s 1 0 0s 2 P x y

13 Non-uniform Scaling x y sxsx x´ y´ = x y P = x´ y´ P´ = x y 0 sysy 0 Redução (0< s x <1), Aumento (s y >1)

14 Flip an Axis... What does this do to appearance of objects? x y 10 0 x y

15 Swap Axes y x x y

16 Rotate by,, MRP R ()cos ()sin ()sin ()cos P x y ()cos x()sin y ()sin x()cos y ()cos ()sin ()sin ()cos x y

17 Transformações Geométricas (Translação) x y P x y P = P txtx tyty t = txtx tyty + = x y x y ? x´ y´ = ? ? ? Não pode ser escrito na forma x y 1 x´ y´ = txtx tyty + Ruim para implementação

18 Vantagens das coordenadas homogêneas (Translação) yhyh xhxh w w=1 x y t P == x y x y 1 x y 1 = txtx tyty 1 [T] Matriz de Translação

19 Coordenadas homogêneas x y P x y 1 x y P wx wy w xhxh yhyh w == x = x h /w y = y h /w w>0 = = yhyh xhxh w w=1 x y Ex.: = = =

20 Vantagens das coordenadas homogêneas (pontos no infinito) w=1 uhuh w H1H1 C1C1 H 2 = C 2 H3H3 C3C / / yhyh xhxh w w=1 x y 2 3 u = u uhuh = ? ? infinito na direção (2,3) infinito na direção (2,3) H1H1 H2H2 H3H3 H4H4 C1C1 C2C2 C3C3 C4C4

21 Vantagens das coordenadas homogêneas (pontos no infinito, exemplo) A B C D x y O A B C D x y O infinito = = = = = = 2 1

22 Efeito de profundidade x y x y

23 Simplificação da projeção cônica plano de projeção eye Projeção cônica plano de projeção direção de projeção Projeção ortográfica

24 Concatenação x y x0x0 y0y0 x y x y x y x0x0 y0y0

25 Concatenação de Transformações x y x y x y x y x y x y T1T1 R1R1 E R2R2 T2T2 P= T 2 R 2 E R 1 T 1 P

26 Composição com sistema local/móvel X Y X Y X Y x y X Y X Y x y Y X P 2 = R T P P = X Y P1P1 = X1X1 Y1Y1 P2P2 = X2X2 Y2Y2 T R R T T = R T R -1 P 1 = T P e P 2 = R P 1 P = X Y P3P3 = X3X3 Y3Y3 P2P2 = X2X2 Y2Y2 P 3 = R P e P 2 = T P 3 P 2 = R T R -1 R P P 2 = R T P ou

27 Geometria Projetiva e Coordenadas Homogêneas em 3D xhyhzhwxhyhzhw xyz1xyz1 m 11 m 12 m 13 m 14 m 21 m 22 m 23 m 24 m 31 m 32 m 33 m 34 m 41 m 42 m 43 m 44 = P P z x y P xyzxyz = P = xyzxyz x h /w y h /w z h /w =

28 Transformações em 3D (translações e escalas) x y z txtx tyty tztz 1 y z 1 x = x y z x y z 1 0 sysy szsz y z 1 x = sxsx 0 0 0

29 Transformações em 3D (Rotações) x y z x y z 1 0 cos x sen x 0 0 cos x y z 1 x = sen x x x y z 1 0 cos y sen y 0 0 cos y y z 1 x = sen y y x y z 1 0 cos z sen x 0 0 cos x y z 1 x = sen x z

30 Transformações em 3D (rotação em torno de um eixo qualquer) x y z 1 m 12 m 22 m 32 0 m 13 m 23 m y z 1 x = m 11 m 21 m 31 0 v = (v x, v y, v z ) x y z m 11 = v x 2 + cos (1- v x 2 ) m 12 = v x v y (1-cos ) - v z sen m 13 = v z v x (1-cos ) + v y sen m 21 = v x v y (1-cos ) + v z sen m 22 = v y 2 + cos (1- v y 2 ) m 23 = v y v z (1-cos ) - v x sen m 31 = v x v z (1-cos ) - v y sen m 32 = v y v z (1-cos )+ v x sen m 22 = v z 2 + cos (1- v z 2 )

31 Projeções Clássicas e Matrizes de Projeção do OpenGL

32 Projeções Planas Cônicas A B ApAp BpBp realista não preserva escala não preserva ângulos

33 Projeções Planas Paralelas A B ApAp BpBp preserva paralelismo possui escala conhecida pouco realista

34 Classificação das projeções planas Paralelas –ortográficas dp // n plantas elevações iso-métrica –oblíquas dp não é paralela a n cavaleiras cabinet Cônicas –1 pto de fuga –2 ptos de fuga –3 ptos de fuga

35 Projeções de um cubo planta ou elevação iso-métrica 1/2 1 Cabinete ( =45 ou 90) Cavaleira ( =45 ou 90) Paralelas Cônicas 1 pto de fuga2 ptos de fuga

36 Projeção plana é uma transformação linear? Ou seja: T(P+Q) = T(P)+T(Q) e T( P) = T(P) ? VpVp 2V V (2V) p 2(V p ) O cp plano de projeção O V 2V VpVp 2V p Projeções cônicas não são TL, paralelas podem ser. Projeções cônicas não são TL, paralelas podem ser.

37 Projeção plana paralela é uma transformação linear? T(P+Q) = T(P)+T(Q) ? T( 0 ) = 0 ? retas paralelas projetam em paralelas QpQp PpPp P p + Q p P O Q QpQp PpPp P+Q Projeção paralela em plano que passa pela origem é uma transformação linear Projeção paralela em plano que passa pela origem é uma transformação linear

38 Matrizes de projeções Cavaleiras e Cabinetes k x y z (1,1,1) x y 1 1 M T(1,0,0) = (1,0) T(0,1,0) = (0,1) T(0,0,1) = ( -k cos, -k sin ) 1 0 -k.cos( M = 0 1 -k.sin(

39 Matrizes de projeções pseudo- isométricas x y z (1,1,1) x y 1 M T(1,0,0) = (cos 30,-sin 30) T(0,1,0) = (0,1) T(0,0,1) = (-cos 30, -sin 30) cos30 0 -cos30 M = -sin30 1 -sin30 ipip i j jpjp k kpkp

40 Projeção cônica simples xexe yeye zeze P PpPp xexe z e d = n y e z e xexe xpxp yeye ypyp -z e xexe xpxp d = xexe xpxp = yeye ypyp d = d yeye ypyp = z p = -d d d

41 Projeção cônica simples xexe yeye zeze P PpPp d yeye ypyp -z e = z p = -d xexe xpxp -z e = d xpxp ypyp zpzp 1 d d d yeye zeze 1 d x e d y e d z e -z e (d/-z e ) x e (d/-z e ) y e -d 1 xexe === w w

42 Simplificação da projeção cônica plano de projeção eye Projeção cônica plano de projeção direção de projeção Projeção ortográfica

43 xexe yeye zeze Distorce o frustum de visão para o espaço da tela [ P ] = n n z e = -n z e = -f xexe yeye zeze z e = -n z e = -f d = n

44 Uma equação para profundidade Ptos no near (z=-n): Ptos no far (z=-f): [ P ] = n n n+f 0 0 n f 0

45 xexe yeye zeze Translada o paralelepípedo de visão para origem [ T ] = (r+l)/2 -(t+b)/2 +(f+n)/2 1 xexe yeye zeze l r b t -(r-l)/2 (r-l)/2 -(t-b)/2 (t-b)/2 (f-n)/2-(f-n)/2

46 Escala o paralelepípedo de visão no cubo [-1,1]x[-1,1]x[-1,1] [S] = xexe yeye zeze -(r-l)/2 (r-l)/2 -(t-b)/2 (t-b)/2 (f-n)/2-(f-n)/2 2/(r-l) /(t-b) /(f-n) 0 xdxd ydyd zdzd near far near far

47 Matriz Frustum do OpenGL [ P ] = n n n+f 0 0 n f 0 [ T ] = (r+l)/2 -(t+b)/2 +(f+n)/2 1 [S] = 2/(r-l) /(t-b) /(f-n) 0 [S T P ] = OpenGL Spec

48 Projeção Cônica (Frustum) far left right xexe zeze near top bottom yeye zeze camera (eye) view frustum xexe yeye zeze void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); Obs.: near e far são distâncias( > 0) Plano de projeção

49 Projeção Cônica (Perspective) aspect = w/h xexe yeye zeze void glPerspective( GLdouble fovy, GLdouble aspect, GLdouble near_, GLdouble far_ ); near far w h xexe zeze fovy

50 Matriz Ortho do OpenGL [ T ] = (r+l)/2 -(t+b)/2 +(f+n)/2 1 [S] = 2/(r-l) /(t-b) /(f-n) 0 OpenGL Spec

51 xexe yeye zeze Projeção Paralela (Ortho) left right bottom top near far A void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top );

52 Glu Look At Dados: eye, ref, up (definem o sistema de coordenadas do olho) Determine a matriz que leva do sistema de Coordenadas dos Objetos para o sistema de Coordenadas do Olho eye center up Coordenadas dos Objetos Coordenadas do Olho void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz);

53 Calcula o sistema - x e y e z e center zeze eye vup z0z0 y0y0 x0x0 view z e = – view / ||view|| vup center eye z0z0 y0y0 x0x0 view dados: eye, center, up dados: eye, center, up view = center - eye

54 Calcula o sistema - x e y e z e x e = (vup x z e ) / ||vup x z e || center eye vup z0z0 y0y0 x0x0 view zeze xexe y e = z e x x e center eye vup z0z0 y0y0 x0x0 view zeze xexe yeye eye vup zeze xexe yeye view

55 eye x eye y eye z [ T ] = Translada o eye para origem center eye z0z0 y0y0 x0x0 zeze xexe yeye z0z0 y0y0 x0x0 center eye zeze xexe yeye

56 [ R ] = x ex x ey x ez 0 y ex y ey y ez 0 z ex z ey z ez Roda x e y e z e para x o y o z o x e, x o y e, y o z e, z o z0z0 y0y0 x0x0 center eye zeze xexe yeye

57 Matriz Look At do OpenGL eye x eye y eye z [ T ] = [ R ] = x ex x ey x ez 0 y ex y ey y ez 0 z ex z ey z ez z e = – view / ||view|| x e = (vup x z e ) / ||vup x z e || y e = z e x x e [ R T ] =?

58 Concatenação das transformações xexe yeye zeze xexe yeye zeze xexe yeye zeze [ T ] [ R ] [ P ] [ T 2 ] [ S ] xexe yeye zeze near far [ T ] [ R ] [ P ] [ T 2 ] [ S ] center eye z0z0 y0y0 x0x0 zeze xexe yeye z0z0 y0y0 x0x0 center eye zeze xexe yeye


Carregar ppt "Transformações Geométricas Rodrigo de Toledo UFRJ, CG1, 2010.2."

Apresentações semelhantes


Anúncios Google