Departamento de Ciência da Computação - IME - USP

MAC0122 Princípios de Desenvolvimento de Algoritmos

Segundo Semestre de 2012

Segundo Exercício Programa     

Parte Gráfica Opcional em Linux     

 

O objetivo dessa parte opcional do segundo exercício-programa (EP) é aprender a fazer um programa com parte gráfica usando OpenGL na plataforma Linux.

Pré Requisitos

 


Descrição da parte opcional

 

A parte gráfica foi incluida para facilitar a visualização do Mondrian. Um programa executável da parte opcional em Linux se encontra no arquivo mondrianGL. Após o download, não se esqueça de torná-lo executável usando o comando chmod +x ./mondrianGL.

Para deixar a parte opcional mais interessante, incluimos a possibilidade de modificar a cor de uma região da seguinte forma:

Outras opções dessa interface:

Lembre-se que a interface só "escuta" o teclado quando a janela gráfica estiver ativa, mas os números para troca de cor de uma região precisam ser digitados no terminal.


O que eu devo fazer para usar a parte gráfica

 

Para usar a parte opcional, utilize o esqueleto-ep2gl.c.

Esse esqueleto-ep2gl.c utiliza o OpenGL e GLUT para desenhar o Mondrian em uma janela. As seguintes funções são fornecidas (você não precisa implementar) para criar a interface gráfica:

void myReshape(int w, int h);
void myKeyboard (unsigned char key, int x, int y);
void myDisplay(void);
void configuraParteGrafica(Imagem *R, Imagem *G, Imagem *B, int numRegioes, CelRegiao c[]);

Para utilizar a parte gráfica é necessário chamar duas funções no final da função main, logo antes do return 0;, da seguinte forma:

int main(int argc, char** argv)
{
  /* declaracao das variaveis */
  Imagem *imgC; /* imagem cinza */
  Imagem *imgR; /* canal R da imagem colorida */
  Imagem *imgG; /* canal G da imagem colorida */
  Imagem *imgB; /* canal B da imagem colorida */
  CelRegiao cabecas[MAX_REGIOES]; 
  int numRegioes;   
  /* declare outras variaveis */

  /* 
     escreva resto do main da forma que voce faria no EP2 sem a parte 
     opcional, adaptando os nomes das variaveis declaradas acima.
  */

  /* chamada de funcoes da parte grafica */
  glutInit(&argc, argv);
  configuraParteGrafica(imgR, imgG, imgB, numRegioes, cabecas);

  return 0;
}


Como compilar o meu programa

Você precisa configurar o CodeBlocks da seguinte forma:

Caso você queira usar o gcc diretamente para compilar o arquivo fonte esqueleto-ep2gl.c você pode digitar na linha de comando (já na pasta onde o arquivo fonte se encontra):

gcc -Wall -ansi -pedantic -O2 -Wno-unused-result esqueleto-ep2gl.c -o mondrianGL -lglut -lGL -lGLU
que vai gerar o programa executável mondrianGL.

 


Last modified: Mon Sep 3 16:29:58 BRT 2012