Viewport.

Slides:



Advertisements
Apresentações semelhantes
Sistemas de Interfaces com o Usuário e Glut/OpenGL
Advertisements

Microsoft Power Point Profa. Jiani Cardoso
Funções para serem usadas no exercício de Lab
Processing – Elementos da Linguagem
Computação Gráfica Mapeamento de textura
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Informática Aplicada.
Silicon Graphics OpenGL - Apresentação
Conteúdo: - Matriz.
Introdução a OpenGL (parte final).
Claudio Esperança Paulo Roma Cavalcanti
Introdução à Computação Gráfica OpenGL Básico
Mapeamento Window-Viewport
Visualização e Projeções I
ESTUDO DA REFLEXÃO E ESPELHO PLANO
SISTEMA DE COORDENADAS
Computação Gráfica Interativa - Gattass
Navegador de cenas com openGL e rastreamento de raios
Sistemas de Interfaces com o Usuário e OpenGL/Glut
OpenGL Alberto B. Raposo.
Excel Básico.
Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Visualização 3D Incluir no FrameWork Básico (na página da disciplina), as.
Funções para serem usadas no exercício de Lab nos dias (18/03/2010 e 24/03/10) Visualização 3D Estruturas de Dados Básica (Global) para Construção de uma.
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Laboratório de Computação Gráfica OpenGL
Iluminação Para programar um sistema de iluminação, dois passos principais devem ser considerados: c) Que tipo e posição de Iluminação se deseja b) Que.
OpenGL – Uma abordagem prática e objetiva
Aula 8 - Sumário Inserir painel rolante.
Computação Gráfica – Transformações Geométricas
Simulação Massa-Mola para Tecidos
Proporcionalidade Inversa.
Os slides mestre Profª Helena Vauthier
Profº Cláudio Barbosa HTML – Frames Dividem a janela do navegador, possibilitando exibir mais de um documento html ao mesmo.
Introdução à Computação Gráfica Projeções
Linguagem de Programação III
Computação Gráfica aula 01
Material elaborado por
Tarefa: Implementar o Demo na página da disciplina. Para trabalhar com iluminação em OpenGL, deve-se definir: 1)Vetores de iluminação : Ex: GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0};
Word Prof. Gláucya Carreiro Boechat
Transformações Geométricas no Plano e no Espaço
Computação Gráfica Introdução ao OpenGL.
Introdução à Computação Gráfica OpenGL Básico
COMPUTAÇÃO GRÁFICA E INTERFACES
Vetores Unidimensionais Sistemas de Informação Desenvolvimento de Sistemas para Web Prof. Gale.
Computação Gráfica – Transformações Projetivas
Desenhos Tridimensionais
Computação Gráfica – Transformações Geométricas
Vetores Unidimensionais Prof. Gale. A Variável A  Ilustrando: O que aconteceria no algoritmo... A  3 Escreva A A  5 Escreva A 3 5.
OpenGL Aula Prática.
Visualização Tridimensional
Visualização 3D de Imagens Médicas
Introdução à Computação Gráfica
Autocad 2007 básico Como personalizar dimensões do papel – novembro Profa. Gilda Lúcia B. Menezes.
Visualização Tridimensional. Quando se trabalha em três dimensões, o SRU (Sistema de Referência do Universo) passa a ser composto por três eixos ortogonais.
Fundamentos e Tecnologia em Web
Felipe Cavalcanti Ferreira Fernando Valente Kakimoto
Vetores Normais.
Manipulação de Imagens em OpenGL
Animação 2D. // Variáveis que guardam a translação que será aplicada // sobre a casinha GLfloat Tx; GLfloat Ty; // Variáveis que guardam os valores mínimos.
© Célio Silvestre Geometria 4.3 Inclusão dos Esquadria, Cargas, Pilar A tela de apresentação possui um menu simples e rápido onde o usuário especifica.
Prof. Edison Oliveira de Jesus
Objetos Predefinidos da GLUT
4 Visualizações Principais (Viewports) Click com botão esquerdo do mouse ativa cada uma das Viewports.
Tipos Compostos Heterogêneos e Tipos Abstratos de Dados
1 HTML Prof. Esp. Andrew Rodrigues Aula: Table e Form andrewtec.wordpress.com.
Gerar Relação de Proprietários. Objetivo: Gerar uma Relação de todos os proprietários de animais cadastrados pelo estabelecimento.
Photoshop Básico - Aula 3: Salvando a imagem Por Oswaldo Hernandez e Douglas Ribeiro Lemos.
Aline Oliveira Everton Godoy Gabriel Leoni Lenilton Rocha Nelson Deda.
Superfícies de Bézier Visualização 3D
Transcrição da apresentação:

Viewport

Conceito: Qualquer ponto mapeado fora da viewport o sistema o ignora. É a região retangular da janela onde a imagem é desenhada, também chamada de janela de exibição ou visualização. É medido em coordenadas inteiras que refletem a posição relativa em “pixels” do canto inferior-esquerdo da janela. Qualquer ponto mapeado fora da viewport o sistema o ignora.

Void glViewport(GLint x, GLint y, GLsizei width, GLsizei height) Esta função é usada para definir a viewport. Os dois primeiros parâmetros servem para especificar o canto inferior esquerdo da janela, enquanto os dois últimos definem, respectivamente, a largura e a altura da janela. Quando se está trabalhando com duas viewport, em geral é atribuido o valor 0 para x e para y e diferentes valores para largura e altura da janela.

Utilização em OpenGL A glViewport é chamada de dentro da função callback AlteraTamanhoJanela. Assim sempre que um usuário altera o tamanho da janela GLUT, a viewport é redefinida. As variáveis largura e altura recebem, respectivamente, os valores de largura e altura da janela GLUT cada vez que o usuário altera o seu tamanho.

void AlteraTamanhoJanela(GLsizei w, GLsizei h) { GLsizei largura, altura; // Evita a divisao por zero if(h == 0) h = 1; // Atualiza as variáveis largura = w; altura = h; // Especifica as dimensões da Viewport glViewport(0, 0, largura, altura); // Inicializa o sistema de coordenadas glMatrixMode(GL_PROJECTION); glLoadIdentity(); // Estabelece a janela de seleção (esquerda, direita, inferior, // superior) mantendo a proporção com a janela de visualização if (largura <= altura) gluOrtho2D (-40.0f, 40.0f, -40.0f*altura/largura, 40.0f*altura/largura); else gluOrtho2D (-40.0f*largura/altura, 40.0f*largura/altura, -40.0f, 40.0f); }

Dessa forma, é possível manter a correção de aspecto caso a janela GLUT tenha seu tamanho alterado e fique muito estreita ou larga, ou muito alta ou baixa. A multiplicação pela razão entre largura e altura (relação de aspecto) garante que a window será definida de maneira que a imagem final não seja deformada.

Variáveis: float win, aspecto; int largura, altura; Nova Função: void DesenhaCasa() void FazMoldura()

// Função que coloca uma linha ao redor da área da window void FazMoldura() { glLineWidth(3); glBegin(GL_LINE_LOOP); glVertex2f(-win*aspecto,-win); glVertex2f(-win*aspecto, win); glVertex2f( win*aspecto, win); glVertex2f( win*aspecto,-win); glEnd(); glLineWidth(1); }

Na função AlteraTamanhoJanela acrescente a variável global declarada: aspecto = (float) largura/altura; Depois do parâmetro de atualização de variáveis: largura e altura

No sistema de coordenadas comente as duas linhas do calculo da correção da razão de aspecto e acrescente: gluOrtho2D (-win*aspecto, win*aspecto, -win, win); Obs: Não esqueça de colocar o valor da variável win na função inicializa: win = 50.0f; Compile e execute!