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

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

Transformações Geométricas

Apresentações semelhantes


Apresentação em tema: "Transformações Geométricas"— 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 y -2 -1 P1
P2 = P1 + P2 1 2 3 -2 -1 = + x

5 Escala Scaling about the origin is scalar multiplication y 2 1 = 2 *
P2 = P1 * 2 x

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

7 Troca de Eixos x = y y = x

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

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
= é ë ê ù û ú a b c d x y x’ y’ onde: + a x b y x’ = + c x d y y’ =

11 Uniform Scaling , ù û ú = S é ë ê s = P é ë ê ù û ú x y , = M S P = é
= P é ë ê ù û ú x y , = M S P = é ë ê ù û ú s x y , = I é ë ê ù û ú 1 = M s é ë ê ù û ú x y M = s I P ,

12 Non-uniform Scaling = S é ë ê ù û ú s = P é ë ê ù û ú x y é s ù é s x
1 2 = P é ë ê ù û ú x y é s ù é s x ù é x ù ê 1 ú ê 1 ú ê ê ú ú ê ú = ê ú ê ú ê ú s ë y û s y ë û ë û 2 2 Note orientation shift in line

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

14 = é ë ê ù û ú x - y 1 -1 Flip an Axis...
-1 What does this do to appearance of objects?

15 Swap Axes = é ë ê ù û ú y x 1

16 Rotate by  , = M R P é ë ê ù û ú ( ) cos q - sin x y = é ë ê ù û ú -
+

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

18 Vantagens das coordenadas homogêneas (Translação)
w y t x w=1 yh xh x’ y’ 1 1 tx ty x y 1 x’ y’ P’ = = = [T] Matriz de Translação

19 Coordenadas homogêneas
y x y 1 wx wy w xh yh w x y = D = D P = = P x x = xh /w w>0 y = yh /w yh xh w w=1 x y Ex.: 3 2 1 6 4 2 9 6 3 3 2 = D = D =

20 Vantagens das coordenadas homogêneas (pontos no infinito)
w H1 w 2 3 u = y w=1 C1 H2 = C2 C3 x u H3 w=1 yh uh H1 H2 H3 H4 uh xh 2 3 2 3 1 2 3 1/2 2 3 1/4 2 3 . . . 2 3 = ? C1 C2 C3 C4 infinito na direção (2,3) 1 1.5 2 3 4 6 8 12

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

22 Efeito de profundidade
x x y y

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

24 Concatenação x y x0 y0 a y y0 x0 x y y a x x

25 Concatenação de Transformações
x y x y T1 T2 x y x y R1 R2 x y x y E P’= T2 R2 E R1 T1 P

26 Composição com sistema local/móvel
X2 Y2 Y X X Y P2 X Y = P = X Y X1 Y1 T P1 = R P1= T P e P2 = R P1 P2 = R T P P2 = X2 Y2 X Y x y X Y X Y x y P3 = X3 Y3 P = X Y T’ R T’ = R T R-1 P3= R P e P2 = T’ P3  P2 = R T R-1 R P ou P2 = R T P

27 Geometria Projetiva e Coordenadas Homogêneas em 3D
z x y xh yh zh w x y z 1 m11 m12 m13 m14 m21 m22 m23 m24 m31 m32 m33 m34 m41 m42 m43 m44 = P’ = x’ y’ z’ xh /w yh/w zh/w P x y z =

28 Transformações em 3D (translações e escalas)
y x’ y’ z’ 1 1 tx x 1 ty y x = 1 tz z z 1 1 x’ y’ z’ 1 sx x sy y = sz z 1 1

29 Transformações em 3D (Rotações)
x’ y’ z’ 1 1 x x y cos qx -sen qx y = qy sen qx cos qx z 1 1 qx x’ y’ z’ 1 cos qy sen qy x qz z 1 y = -sen qy cos qy z 1 1 x’ y’ z’ 1 cos qz -sen qx x sen qx cos qx y = 1 z 1 1

30 Transformações em 3D (rotação em torno de um eixo qualquer)
y’ z’ 1 m11 m12 m13 x m21 m22 m23 y z 1 = m31 m32 m33 z 1 v = (vx, vy, vz) m11 = vx2 + cosq (1- vx2) m12 = vxvy(1-cosq ) - vz sen q m13 = vzvx(1-cosq ) + vy sen q m21 = vxvy(1-cosq ) + vz sen q m22 = vy2 + cosq (1- vy2) m23 = vyvz(1-cosq ) - vx sen q m31 = vxvz (1-cosq ) - vy sen q m32 = vyvz(1-cosq )+ vx sen q m22 = vz2 + cosq (1- vz2) y x

31 Projeções Clássicas e Matrizes de Projeção do OpenGL
Computação Gráfica Interativa - Gattass 4/1/2017 Projeções Clássicas e Matrizes de Projeção do OpenGL Projeções Clássicas e Transformações

32 Projeções Planas Cônicas
Computação Gráfica Interativa - Gattass 4/1/2017 Projeções Planas Cônicas A Ap B Bp realista não preserva escala não preserva ângulos Projeções Clássicas e Transformações

33 Projeções Planas Paralelas
Computação Gráfica Interativa - Gattass 4/1/2017 Projeções Planas Paralelas A Ap B Bp pouco realista preserva paralelismo possui escala conhecida Projeções Clássicas e Transformações

34 Classificação das projeções planas
Computação Gráfica Interativa - Gattass 4/1/2017 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 Projeções Clássicas e Transformações

35 Computação Gráfica Interativa - Gattass
4/1/2017 Projeções de um cubo Paralelas 1 1 a 1/2 a 1 1 1 planta ou elevação iso-métrica Cabinete (a=45 ou 90) Cavaleira (a=45 ou 90) Cônicas 1 pto de fuga 2 ptos de fuga Projeções Clássicas e Transformações

36 Projeção plana é uma transformação linear?
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção plana é uma transformação linear? Ou seja: T(P+Q) = T(P)+T(Q) e T(aP) = aT(P) ? 2V V 2V plano de projeção (2V)p¹ 2(Vp) V 2Vp Vp O Vp O cp cp Projeções cônicas não são TL, paralelas podem ser. Projeções Clássicas e Transformações

37 Projeção plana paralela é uma transformação linear?
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção plana paralela é uma transformação linear? T(P+Q) = T(P)+T(Q) ? P O Q Qp Pp P+Q retas paralelas projetam em paralelas Qp Pp Pp+ Qp T( 0 ) = 0 ? Projeção paralela em plano que passa pela origem é uma transformação linear Projeções Clássicas e Transformações

38 Matrizes de projeções Cavaleiras e Cabinetes
Computação Gráfica Interativa - Gattass 4/1/2017 Matrizes de projeções Cavaleiras e Cabinetes y y M 1 (1,1,1) k a 1 x x z Â3 Â2 T(1,0,0) = (1,0) T(0,1,0) = (0,1) T(0,0,1) = ( -k cos a, -k sin a ) k.cos(a) M = k.sin(a) Projeções Clássicas e Transformações

39 Matrizes de projeções pseudo-isométricas
Computação Gráfica Interativa - Gattass 4/1/2017 Matrizes de projeções pseudo-isométricas y y M j jp 1 (1,1,1) x i x kp ip k z Â3 Â2 T(1,0,0) = (cos 30 ,-sin 30) T(0,1,0) = (0,1) T(0,0,1) = (-cos 30, -sin 30) cos cos30 M = -sin sin30 Projeções Clássicas e Transformações

40 Projeção cônica simples
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção cônica simples xe ye ze P Pp zp = -d xe xp d -ze = ye yp d -ze = xe ye xp yp d ye yp -ze = d xp -ze = xe -ze d d = n xe y z e e z e Projeções Clássicas e Transformações

41 Projeção cônica simples
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção cônica simples xe xp -ze = d xe ye ze P Pp d ye yp -ze = zp = -d xp yp zp 1 d -1 xe d xe d ye d ze -ze (d/-ze) xe (d/-ze) ye -d 1 ye ze 1 = = = ¸ w w Projeções Clássicas e Transformações

42 Simplificação da projeção cônica
Computação Gráfica Interativa - Gattass 4/1/2017 Simplificação da projeção cônica Projeção cônica Projeção ortográfica eye plano de projeção direção de projeção plano de projeção Projeções Clássicas e Transformações

43 Distorce o frustum de visão para o espaço da tela
Computação Gráfica Interativa - Gattass 4/1/2017 Distorce o frustum de visão para o espaço da tela xe ye ze ze = -n ze = -f n -1 [ P ] = d = n xe ye ze ze = -n ze = -f Projeções Clássicas e Transformações

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

45 Translada o paralelepípedo de visão para origem
Computação Gráfica Interativa - Gattass 4/1/2017 Translada o paralelepípedo de visão para origem xe ye ze t b [ T ] = 1 -(r+l)/2 -(t+b)/2 +(f+n)/2 l r xe ye ze (t-b)/2 -(t-b)/2 -(r-l)/2 (r-l)/2 (f-n)/2 -(f-n)/2 Projeções Clássicas e Transformações

46 Escala o paralelepípedo de visão no cubo [-1,1]x[-1,1]x[-1,1]
Computação Gráfica Interativa - Gattass 4/1/2017 Escala o paralelepípedo de visão no cubo [-1,1]x[-1,1]x[-1,1] xe ye ze (t-b)/2 -(t-b)/2 -(r-l)/2 (r-l)/2 (f-n)/2 -(f-n)/2 near far 2/(r-l) 1 2/(t-b) -2/(f-n) [S] = xd yd zd 1 -1 near far Projeções Clássicas e Transformações

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

48 Projeção Cônica (Frustum)
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção Cônica (Frustum) void glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); view frustum ye ze xe camera (eye) Obs.: near e far são distâncias( > 0) Plano de projeção left right top bottom far near xe ye ze ze Projeções Clássicas e Transformações

49 Projeção Cônica (Perspective)
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção Cônica (Perspective) void glPerspective( GLdouble fovy, GLdouble aspect, GLdouble near_, GLdouble far_ ); ye w aspect = w/h ze h xe near far fovy xe ze Projeções Clássicas e Transformações

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

51 Projeção Paralela (Ortho)
Computação Gráfica Interativa - Gattass 4/1/2017 Projeção Paralela (Ortho) near ye top far bottom ze A xe left right void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); Projeções Clássicas e Transformações

52 Glu Look At void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); 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 up eye center Coordenadas dos Objetos Coordenadas do Olho

53 Calcula o sistema - xe ye ze
Computação Gráfica Interativa - Gattass 4/1/2017 Calcula o sistema - xe ye ze vup center eye z0 y0 x0 view dados: eye, center, up view = center - eye vup ze eye view z0 y0 x0 center ze = – view / ||view|| Projeções Clássicas e Transformações

54 Calcula o sistema - xe ye ze
Computação Gráfica Interativa - Gattass 4/1/2017 Calcula o sistema - xe ye ze center eye vup z0 y0 x0 view ze xe xe = (vup x ze) / ||vup x ze|| center eye vup z0 y0 x0 view ze xe ye eye vup ze xe ye view ye = ze x xe Projeções Clássicas e Transformações

55 Translada o eye para origem
Computação Gráfica Interativa - Gattass 4/1/2017 Translada o eye para origem center eye z0 y0 x0 ze xe ye eyex eyey eyez [ T ] = z0 y0 x0 center eye ze xe ye Projeções Clássicas e Transformações

56 Roda xe ye ze para xo yo zo
Computação Gráfica Interativa - Gattass 4/1/2017 Roda xe ye ze para xo yo zo [ R ] = xex xey xez 0 yex yey yez 0 zex zey zez 0 z0 y0 x0 center eye ze xe ye xe , xo ye , yo ze , zo Projeções Clássicas e Transformações

57 Matriz Look At do OpenGL
eyex eyey eyez [ T ] = ze = – view / ||view|| [ R T ] =? xe = (vup x ze) / ||vup x ze|| ye = ze x xe [ R ] = xex xey xez 0 yex yey yez 0 zex zey zez 0

58 Concatenação das transformações
Computação Gráfica Interativa - Gattass 4/1/2017 Concatenação das transformações z0 y0 x0 center eye ze xe ye [ R ] xe ye ze [ T ] [ P ] center eye z0 y0 x0 ze xe ye xe ye ze [ T2 ] [ T ] [ R ] [ P ] [ T2 ] [ S ] xe ye ze [ S ] xe ye ze 1 -1 near far Projeções Clássicas e Transformações


Carregar ppt "Transformações Geométricas"

Apresentações semelhantes


Anúncios Google