• Nenhum resultado encontrado

Computação Gráfica - 06

N/A
N/A
Protected

Academic year: 2021

Share "Computação Gráfica - 06"

Copied!
12
0
0

Texto

(1)

Computação Gráfica - 06

Prof. Jorge Cavalcanti

jorge.cavalcanti@univasf.edu.br

www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação

(2)

Menus, Janelas e Textos

A GLUT possui algumas ferramentas de criação e gerenciamento de menus pop-up ´ s ;

Para cada opção do menu deve existir uma função de callback separada;

Cada opção do menu gera um número diferente, o qual é informado como parâmetro da função quando a opção é escolhida pelo usuário;

Cabe ao programador desenvolver a função,

tratando o valor recebido como parâmetro.

(3)

Funções para criar/gerenciar menus:

glutCreateMenu

Cria um menu, definindo que uma função será chamada quando uma opção do menu for selecionada. O menu recém- criado passa a ser o “menu corrente”.

int glutCreateMenu(void(*nome_função)(int valor))

•glutAddMenuEntry

Adiciona uma opção ao menu corrente.

Void glutAddMenuEntry(char *texto_opção, int identificação)

•glutAddSubMenu

Adiciona submenu ao menu corrente.

Void glutAddSubMenu(char *texto_opção, int identificação)

Menus, Janelas e Textos

(4)

Funções para criar/gerenciar menus:

glutAttachMenu

Faz a ligação do menu corrente com um dos botões do mouse.

Void glutAttachMenu(GLUT_LEFT_BUTTON)

•glutDetachMenu

Interrompe na janela corrente o vínculo do menu corrente com um dos botões do mouse.

Void glutDetachMenu(GLUT_LEFT_BUTTON)

Código fonte exemplo: http://migre.me/1KoRp

Menus, Janelas e Textos

(5)

Opções adicionais com o mouse (ver no exemplo)

glutMotionFunc

Estabelece a função callback que é chamada pela GLUT cada vez que o mouse é movido sobre a janela corrente enquanto um ou mais de seus botões estão pressionados. Parâmetros de entrada da função:

(int x, int y). Os parâmetros x e y indicam a posição do mouse em coordenadas da janela.

Void glutMotionFunc(int x, int y)

glutPassiveMotionFunc

Estabelece a função callback que é chamada pela GLUT cada vez que o mouse é movido sobre a janela corrente enquanto nenhum de seus botões está pressionado. Parâmetros de entrada da função callback: (int x, int y).

Void glutPassiveMotionFunc(int x, int y)

Menus, Janelas e Textos

(6)

Funções para manipulação de janelas

glutFullScreen

– Faz com que a janela ocupe toda a tela.

void glutFullScreen(void)

glutPositionWindow

– Redefine a nova posição da janela na tela.

void glutPositionWindow(int x, int y)

glutReshapeWindow

– Permite definir o novo tamanho da janela.

void glutReshapeWindow (int width, int height)

(7)

Exemplo menu para manipulação de janelas

void Janela(int opcao) {

switch(opcao){

case 0:

glutReshapeWindow(300, 200);

break;

case 1:

glutPositionWindow(250,200);

break;

case 2:

glutFullScreen();

break; }

glutPostRedisplay();

(8)

Exemplo menu para manipulação de janelas

void CriarMenu() {

int menu;

menu = glutCreateMenu(Janela);

glutAddMenuEntry("Muda Tamanho", 0);

glutAddMenuEntry("Muda Posição", 1);

glutAddMenuEntry("Tela Cheia", 2);

glutAttachMenu(GLUT_RIGHT_BUTTON);

}

(9)

Textos e Fontes

A OpenGL não suporta a exibição de textos na tela, mas a GLUT oferece esse recurso;

Suporte a dois tipos de fontes de caracteres:

Fontes formadas por segmentos de retas (Stroke);

Fontes formadas por imagens que representam os caracteres (Bitmap);

Fontes Stroke são mais flexíveis, pois podem ser escaladas e rotacionadas;

Fontes Bitmap são mais rápidas de serem exibidas.

(10)

Textos e Fontes

void glutBitmapCharacter(void *font, int char)

Permite a exibição de um caracter do tipo bitmap. O primeiro parâmetro (font) define o tipo de fonte e o segundo (char), o caracter a ser exibido. Os valores válidos para o tipo de fonte são:

Valor Descrição

GLUT_BITMAP_8_BY_13 Fonte padrão 8x13 GLUT_BITMAP_9_BY_15 Fonte padrão 9x15

GLUT_BITMAP_TIMES_ROMAN_10 Fonte times roman tamanho 10 GLUT_BITMAP_TIMES_ROMAN_24 Fonte times roman tamanho 24 GLUT_BITMAP_HELVETICA10 Fonte helvética, tamanho 10

(11)

Textos e Fontes

void glRasterPos2f, void glRasterPos2i, void glRasterPos2d

Modifica a posição matricial corrente utilizada para

desenhar o texto. Define a posição onde o caractere será exibido;

Ao ser exibido um caractere, o próximo é

automaticamente exibido à direita do anterior.

void glutStrokeCharacter(void *font, int character)

Exibe fontes Stroke. O primeiro parâmetro (font) define o

tipo de fonte e o segundo (char), o caractere a ser

exibido. Os valores válidos para o tipo de fonte são:

(12)

Textos e Fontes

Como os caracteres são exibidos usando linhas, as funções que afetam as linhas, também afetam os caracteres exibidos.

– A posição inicial do texto também é afetada por transformações geométricas.

As funções para exibição de texto exibem um caractere de cada vez, para desenhar strings, é necessário

desenvolver uma rotina que exiba cada caractere na sequência.

No código exemplo a seguir, as funções

DesenhaTextoBitmap e DesenhaTextoStroke ilustram a

Referências

Documentos relacionados

A proposta deve trazer no alto da página, imediatamente antes do título, em fonte Times New Roman, tamanho 10, espaço simples, justificado à esquerda, as seguintes informações:

• Fontes: Times New Roman, tamanho 12 para o corpo do texto, resumo, abstract, citações e referências, com exceção para as notas, cuja fonte deve ter tamanho 10.. O itálico

Sempre que não concordar com algo, não leve para fora do conjunto. Converse imediatamente com a liderança com a liderança do conjunto, assim pode se resolver da

Sendo aprovado no processo de seleção, o candidato deverá, obrigatoriamente, apresentar no ato da matricula acadêmica o Registro Nacional de Estrangeiro (RNE) ou protocolo

II - a pessoa jurídica que tenha em seu quadro societário ou de dirigentes pessoa com condenação definitiva por crime de sonegação fiscal, lavagem de dinheiro,

Jaime Lopes Amorim deixou uma vasta obra, de inegável significado teórico e prático, plasmada em monografias, em revistas portuguesas e estrangeiras, tais como: Anais do

Verificou-se que os sistemas de alojamento apresentaram diferenças para temperatura de bulbo seco (Tbs), quando comparados entre si, observando-se o maior valor de tem- peratura

A lei não nos fornece uma definição de arguido apenas refere quem, como, quando é que alguém assume a qualidade de arguido. Para além disso, a lei diz-nos também qual