Transformações Geométricas

Documentos relacionados
Cap. 1 Renderização 3D: Transformações Geométricas. Mestrado em Engenharia Informática (6931) 1º ano, 1º semestre

Transformações Geométricas

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores

Cap. 4: Janelas, Visores & Recorte Gráfico

LAB. 1. Introdução à OpenGL

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018)

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda. Primeiro Teste 17 de Março de 2012

CG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto

Engenharia Informática Computação Gráfica

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10)

Estrutura de um programa gráfico

CG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste

Introdução a OpenGL. Profª. Alessandra Martins Coelho

Transformações Geométricas

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017)

Engenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018)

António Costa. Paulo Roma Cavalcanti

Programação Gráfica Cap 2

Transformações Geométricas. Transformações Geométricas. Sistemas de Coordenadas. Translação: M.C.F. de Oliveira Rosane Minghim 2006

Transformações Gráficas Tridimensionais (3D) Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

n À primeira vista: basta desenhar n Uma subrotina para desenhar cada tipo de objeto n Mas... n Como fazer interação? n Como estruturar a cena?

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

Transformações Geométricas

Fundamentos de Computação Gráfica

aula6 Curvas de Hermite 2016/2 IC / UFF Criadas por Charles Hermite ( )

FCG2006 Prova sobre OpenGL e Rastreamento de Raios

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Desenho de uma matriz de retângulos Serve de base para o exercício das cores

Computação Gráfica II

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG

Computação Gráfica. Introdução. Tomás A. C. Badan

OpenGL, GLU e GLUT. GLUT (OpenGL Utility Toolkit) OpenGL. Linguagem. OpenGL. Esqueleto de um programa em PyOpenGL

Computação Gráfica I. Conteúdo: Professor: - Transformações geométricas no plano. Instituto de Computação - UFF

Uma API para geração de gráficos

Introdução Prática à Programação em OpenGL

Aula Teórico-Prática nº 2

Motivação. Representar interiores dos objectos sólidos A superfície pode não ser descrita explicitamente

Visualização por Computador: Teoria, Prática e Aplicações

Transformações Geométricas

CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark. 12 de Janeiro de 2016

Transformações Geométricas

Introdução à OpenGL. SCC0250/ Computação Gráfica

OpenGL. Computação Gráfica ISEL/DEETC/SP Computação Gráfica

Transformações Geométricas para Visualização 3D

Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012

Laboratório de Programação com Games. Conteúdo: Professor: - Transformações no plano. Instituto de Computação - UFF

OpenGL. Introdução ao OpenGL. Sistemas de Coordenadas. OpenGL 29/04/2010. Profa. M. Cristina Profa. Rosane. Application Programming Interface (API)

- INF Remoção de faces ocultas Aula 21

Computação Gráfica Módulo III Geometria

Estrutura de aplicação gráfica interativa tradicional

Translação. Sistemas de Coordenadas. Translação. Transformações Geométricas 3D

UNIVERSIDADE DO ALGARVE ESCOLA SUPERIOR DE TECNOLOGIA LICENCIATURA EM ENGENHARIA CIVIL ÁLGEBRA LINEAR E GEOMETRIA ANALÍTICA

Transformações Geométricas em C.G.

Transformações Geométricas 3D

CIV2802 Sistemas Gráficos para Engenharia Luiz Fernando Martha André Pereira

OpenGL 3.* INF Rendering em Tempo Real. Waldemar Celes Departamento de Informática, PUC-Rio

Capítulo 6 Transformação de tensão no plano

Computação Gráfica OpenGl 01

GAAL - Terceira Prova - 15/junho/2013. Questão 1: Analise se a afirmação abaixo é falsa ou verdadeira:

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler

OpenGL. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

Transformações Geométricas

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 3. Transformações Geométricas

TRANSFORMAÇÕES EM SISTEMAS CARTESIANOS

Transformações Geométricas 2D e 3D

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. ramal 5981

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D

Geometria e Programação Geométrica

Nota de aula: Transformações Lineares

Fundamentos Matemá3cos para Computação Gráfica

Sumário. Computação Gráfica. Transformações Geométricas. Transformações Geométricas. Translação: Transformações Geométricas

Modelos Geométricos Transformações

Básico: estrutura de programa, sintaxe Interface com linha de comando

Ponteiros e Tabelas. K&R: Capítulo 5

Fundamentos de Processamento Gráfico

Curso de CG 2019/1 IC / UFF

Transformações geométricas em coordenadas homogêneas 2-D

Sistemas de Coordenadas e Equações de Movimento

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

OpenGL. O que é OpenGL. O Pipeline do OpenGL. Listas de Exposição

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Sistemas de Coordenadas e Equações de Movimento

Carlos Eduardo Batista. Centro de Informática - UFPB

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Transformações Geométricas

Câmara Virtual Simples

Introdução à Programação em OpenGL. Prof. Márcio Bueno

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

3 IMPLEMENTAÇÃO DO ELEMENTO FINITO

Coordenadas Homogêneas no Plano e no Espaço

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

TRANSFORMAÇÕES LINEARES

1 o Ano - 1 o Semestre de 2017/2018 Série 9 (11/12/2017)

Soluções numéricas da equação de Blasius

Sistemas de Interfaces com o Usuário e OpenGL (com IUP ou GLUT)

Transcrição:

Computação Gráfica 5385: Licenciatura em Engenharia Informática Cap. 2 Transformações Geométricas Transformações Geométricas

Sumário

Transformações geométricas Geometria Projectiva (projecções) Geometria Afim (variação de tamanho, cisalhamento) Geometria Euclideana (translação, rotação, refleão) NOTA: o pipeline gráfico é uma implementação da geometria projectiva!

Motivação

Motivação (cont.): modelação e posicionamento Variação de Tamanho Rotação Translação Y Coordenadas Locais (modeling coordinates) X Variação de Tamanho Translação Coordenadas Globais (world coordinates)

Translação '= + Δ '= + Δ Δ=2 Δ=

Translação 2D: forma matricial ' ' = + Δ Δ http://encclopedia.laborlawtalk.com/linear_combination Uma combinação linear de e é uma epressão do tipo a+b, em que a,b são constantes.

Rotação '= cosθ sinθ '= sinθ + cosθ (, ) θ (, )

Rotação 2D: cálculo das equações (, ) = rcosφ = rsinφ '= rcos(φ +θ) '= rsin(φ +θ) θ φ (, ) ' = r cosφ cosθ r sinφ sinθ ' = r cosφ sinθ + r sinφ cosθ ' = cosθ sinθ ' = sinθ + cosθ

Rotação 2D: forma matricial ' ' = cosθ sinθ sinθ cosθ

Problema fundamental das transformações Solução: COORDENADAS HOMOGÉNEAS

Coordenadas homogéneas O P = (,,z) Q = ( z, z,) z http://www.geometer.org/mathcircles/cghomogen.pdf z= P Q z O

Translação 2D e rotação 2D: coordenadas homogéneas Translação Rotação ' ' = cosθ sinθ 0 sinθ cosθ 0 0 0 ' ' = 0 Δ 0 Δ 0 0

Geometria métrica Euclidiana

Definição de grupo: lembrete

Geometria afim

Variação de tamanho (scaling) '= λ '= λ λ = 2 λ = 2

Variação de tamanho não-uniforme '= λ '= λ com λ λ λ = 2 λ = 0.5

Cisalhamento (shearing) '= + κ '= + κ κ = κ = 0

Resumo: representação matricial 33 de transformações afins Translação Rotação Cisalhamento Variação de Tamanho ' ' = 0 Δ 0 Δ 0 0 ' ' = λ 0 0 0 λ 0 0 0 ' ' = cosθ sinθ 0 sinθ cosθ 0 0 0 ' ' = κ 0 κ 0 0 0

Composição de transformações afins 2D = 0 Δ 0 Δ 0 0. cosθ sinθ 0 sinθ cosθ 0 0 0. λ 0 0 0 λ 0 0 0.

Eemplo: rotação de θ=30º dum segmento de recta PQ em torno de P(2,0) P P P Incorrecto Rot(30) Correcto Tr(-2) Rot(30) Tr(2)

Eemplo: rotação de θ=30º dum segmento de recta PQ em torno de P(2,0) P P P P ' 0 2 cosθ sinθ 0 0 2 ' = 0 0. sinθ cosθ 0. 0 0. 0 0 0 0 0 0

Transformações afins 3D Identidade Variação de Tamanho Translação Refleão relativamente ao plano YZ ' ' z' = 0 0 0 0 0 0 0 0 0 0 0 0 z ' ' z' = λ 0 0 0 0 λ 0 0 0 0 λ z 0 0 0 0 z ' ' z' = 0 0 Δ 0 0 Δ 0 0 Δz 0 0 0 z ' ' z' = 0 0 0 0 0 0 0 0 0 0 0 0 z

Outras transformações afins 3D Rotação em torno do eio Z ' ' z' = cosθ sinθ 0 0 sinθ cosθ 0 0 0 0 0 0 0 0 z Rotação em torno do eio Y ' ' z' = cosθ 0 sinθ 0 0 0 0 sinθ 0 cosθ 0 0 0 0 z Rotação em torno do eio X ' ' z' = 0 0 0 0 cosθ sinθ 0 0 sinθ cosθ 0 0 0 0 z

Transformações afins em OpenGL

Transformações afins pré-definidas em OpenGL

Transformações geométricas arbitrárias em OpenGL

Transformações afins com acumulação Transformações afins sem acumulação Transformações afins com acumulação controlada

Transformações 2D c/ acumulação // Cumulative 2D transformations #include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h> #include <stdlib.h> void draw() { // Make background colour ellow glclearcolor( 00, 00, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // modelview matri glmatrimode(gl_modelview); // -ais glcolor3f(0,0,0); glbegin(gl_lines); glverte2f(0.0,0.0); glverte2f(0.5,0.0); glend(); // -ais glcolor3f(0,0,0); glbegin(gl_lines); glverte2f(0.0,0.0); glverte2f(0.0,0.5); glend();

Transformações 2D c/ acumulação (cont.)

Transformações 2D s/ acumulação // quad.cc - Non-cumulative 2D transformations #include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h> #include <stdlib.h> void draw() { // Make background colour ellow glclearcolor( 00, 00, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // modelview matri glmatrimode(gl_modelview); // -ais glcolor3f(0,0,0); glbegin(gl_lines); glverte2f(0.0,0.0); glverte2f(0.5,0.0); glend(); // -ais glcolor3f(0,0,0); glbegin(gl_lines); glverte2f(0.0,0.0); glverte2f(0.0,0.5); glend();

Transformações 2D s/ acumulação (cont.) // Keboard method to allow ESC ke to quit void keboard(unsigned char ke,int,int ) { if(ke==27) eit(0); } int main(int argc, char ** argv) { glutinit(&argc, argv); // Double Buffered RGB displa glutinitdisplamode( GLUT_RGB GLUT_DOUBLE); // Set window size glutinitwindowsize( 500,500 ); glutcreatewindow("rectangles..."); // Declare the displa and keboard functions glutdisplafunc(draw); glutkeboardfunc(keboard); // Start the Main Loop glutmainloop(); return 0; }

Transformações 2D c/ acumulação controlada //Stack-cumulative 2D transformations #include <OpenGL/gl.h> #include <OpenGL/glu.h> #include <GLUT/glut.h> #include <stdlib.h> void draw(){ // Make background colour ellow glclearcolor( 00, 00, 0, 0 ); glclear ( GL_COLOR_BUFFER_BIT ); // modelview matri glmatrimode(gl_modelview); // -ais glcolor3f(0,0,0); glbegin(gl_lines); glverte2f(0.0,0.0); glverte2f(0.5,0.0); glend(); // -ais glcolor3f(0,0,0); glbegin(gl_lines); glverte2f(0.0,0.0); glverte2f(0.0,0.5); glend();

Transformações 2D c/ acumulação controlada (cont.) // Keboard method to allow ESC ke to quit void keboard(unsigned char ke,int,int ) { if(ke==27) eit(0); } int main(int argc, char ** argv) { glutinit(&argc, argv); // Double Buffered RGB displa glutinitdisplamode( GLUT_RGB GLUT_DOUBLE); // Set window size glutinitwindowsize( 500,500 ); glutcreatewindow("rectangles..."); // displa and keboard functions glutdisplafunc(draw); glutkeboardfunc(keboard); // Start the Main Loop glutmainloop(); return 0; }

Sumário: