Léo Unicap Postado Março 20, 2009 Denunciar Share Postado Março 20, 2009 Oi galera.To com um projeto pra faculdade pra fazer mas to com um probleminha.O projeto é basicamente o seguinte:Usando OpenGL e C++, rasterisar na tela uma reta e uma circunferencia de acordo com a quantidade de pixel desejada pelo usuário.Isso já ta OK.O meu probrela é o seguinte:No projeto eu tenho que fazer com que quando o usuário almetar ou diminuir o tamanho da tela, as figuras que nela estão, não podem serafetadas, ou seja, não podem ser almentado ou diminuidas também.Como eu faço isso(usando OpenGL + Glui + Glut + C++)?Vlw.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 w0lv3r1n3 Postado Março 20, 2009 Denunciar Share Postado Março 20, 2009 Cara,este link provavelmente pode te ajudar e muito...de uma olhada na funcao gluReshapeFunc, ve se ela resolve teu problema....Introducao ao OpenGLabrasssss Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Léo Unicap Postado Março 21, 2009 Autor Denunciar Share Postado Março 21, 2009 Dei uma olhada no link que você me mandou. É realmente muito bom, todo detalhado.Segundo o link, a função "AlteraTamanhoJanela" é a que faz a janela ser alterada semalterar o conteúdo.Implementei ela no meu código, mas quando fui rodar, o quadrado que estava aparecendo sumiu. Se você retirar ou colocar como comentário a função "AlteraTamanhoJanela",assim como sua chamada na "main", verá que o quadrado aparece normalmente.Estou com o seguinte código.Onde eu estou errando?#include <stdio.h> #include <stdlib.h> #include <math.h> #include <GL/glut.h> void drawPixel(int, int); inline int round (const float a) { return int (a + 0.5); } void Desenha(void) { // Limpa a janela de visualização com a cor branca glClearColor(1,1,1,0); glLineWidth(3); glClear(GL_COLOR_BUFFER_BIT); // Define a cor de desenho: Preto glColor3f(0,0,0); glBegin(GL_LINE_LOOP); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glVertex2f(-0.5, -0.5); glEnd(); //Executa os comandos }OpenGL glFlush(); } void Teclado (unsigned char key, int x, int y) { if (key == 27) exit(0); } // Função responsável por inicializar parâmetros e variáveis void Inicializa(void) { // Define a janela de visualização 2D glMatrixMode(GL_PROJECTION); gluOrtho2D(-1.0,1.0,-1.0,1.0); glMatrixMode(GL_MODELVIEW); } //Função callback chamada quando alterar o tamanho da janela void AlteraTamanhoJanela(GLsizei w, GLsizei h) { //if para evitar divisão por 0 if(h==0) h=1; //Especifica as dimenções da Viewport glViewport(0, 0, w, h); //Inicializa o sistema de coordenadas glMatrixMode(GL_PROJECTION); glLoadIdentity(); //Estabelece a janela de seleção (left, right, bottom, top) if(w<=h) gluOrtho2D (0.0f, 250.0f, 0.0f, 250.0f*h/w); else gluOrtho2D (0.0f, 250.0f*w/h, 0.0f, 250.0f); } int main(void) { // Programa Principal // Define do modo de operação da GLUT glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // tamanho em pixels da janela glutInitWindowSize(400,400); // Cria a janela passando como argumento o título da mesma glutCreateWindow("Primeiro Programa"); // Registra função de redesenho glutDisplayFunc(Desenha); //Evita que o conteúdo da janela seja alterado se a mesma for glutReshapeFunc(AlteraTamanhoJanela); // Registra função de teclado glutKeyboardFunc(Teclado); // Chama a função de inicializações Inicializa(); // Inicia o processamento e aguarda interações do usuário glutMainLoop(); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Léo Unicap
Oi galera.
To com um projeto pra faculdade pra fazer mas to com um probleminha.
O projeto é basicamente o seguinte:
Usando OpenGL e C++, rasterisar na tela uma reta e uma circunferencia
de acordo com a quantidade de pixel desejada pelo usuário.
Isso já ta OK.
O meu probrela é o seguinte:
No projeto eu tenho que fazer com que quando o usuário almetar ou
diminuir o tamanho da tela, as figuras que nela estão, não podem ser
afetadas, ou seja, não podem ser almentado ou diminuidas também.
Como eu faço isso(usando OpenGL + Glui + Glut + C++)?
Vlw.
Abraços.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.