Antes de mais nada, agradeço pelo codigo ^^
Mas como usa ele? A gente joga nossas funcoes no mesmo arquivo e muda o main() ou é pra acessar ele a partir do nosso codigo? E se for esse o caso, como fazemos isso?
Bom, não vou contar muita coisa porque senão perde a graça completamente.
A idéia é: no main inicializamos as coisas e falamos para o OpenGL tomar o controle. Ou seja, no main não é tem muita coisa para vocês fazerem (talvez arrumar algumas variáveis que vão usar).
A ação acontece mesmo no display. Como está comentado lá, toda vez que o OpenGL vai desenhar ele roda essa função. No esqueleto ele simplesmente imprime uma linha usando draw_segmento.
Como poderiamos fazer uma função que desenha um triangulo?
Basta fazer do jeito mais simples: chama três vezes draw_segmento e na função display chama a função draw_triangle que acabou de fazer.
Já ajuda?
Opa, ajuda sim ^^ Vlw mesmo!
Aproveitando o topico, eu to tendo uns problemas na hora de compilar o segmento.c: ele dá "undefined reference to" para todas as funcoes opengl. Eu fui atrás do openGL e consegui os arquivos pré-compilados (.h, .dll, e .lib) e coloquei onde o README dizia para pôr*, mas não sei se é assim mesmo que faz...
Alguma idéia?
* .h -> /include/GL
.lib -> /lib
/dll -> Windows/System32 (eu uso Windows Vista)
Aproveitando o topico, eu to tendo uns problemas na hora de compilar o segmento.c: ele dá "undefined reference to" para todas as funcoes opengl. Eu fui atrás do openGL e consegui os arquivos pré-compilados (.h, .dll, e .lib) e coloquei onde o README dizia para pôr*, mas não sei se é assim mesmo que faz...
Alguma idéia?
* .h -> /include/GL
.lib -> /lib
/dll -> Windows/System32 (eu uso Windows Vista)
Vou ser sincero Wilson. Nunca uso windows, então não faço idéia de como fazer isso funcionar.
eu ja tinha começado a dar uma olhada no opengl e como a maioria dos exemplos são do windows, esse site deve te ajuda...
http://www.inf.pucrs.br/~manssour/OpenGL/Tutorial.html
http://www.inf.pucrs.br/~manssour/OpenGL/Tutorial.html
No Mac OS X é preciso alterar GL/glut.h para GLUT/glut.h, e para compilar o programa:
gcc -framework GLUT -framework OpenGL segmento.c
gcc -framework GLUT -framework OpenGL segmento.c
também aproveitando... nós somos livres para alterar o código base ou ele é 'intocável'?
Aproveitando a pergunta do Manzo...
Descobri que parte do meu problema pode ser resolvido colocando
#define GLUT_DISABLE_ATEXIT_HACK
no código, além de incluir as outras duas bibliotecas do OpenGl(gl.h e glu.h). Essas alterações são válidas?
Também tive problema com o comando Exit no menu que aparece com o botão direito, ele trava o programa. Aparentemente, isso deixa de acontecer quando eu comento
glutDestroyWindow(win);
na função menu(), assim:
if(value == QUIT){
/*glutDestroyWindow(win);*/
exit(0);
}
Também é válido? (Eu não sei se é esse o problema, mas acho que a variável "win" nunca é inicializada)
Descobri que parte do meu problema pode ser resolvido colocando
#define GLUT_DISABLE_ATEXIT_HACK
no código, além de incluir as outras duas bibliotecas do OpenGl(gl.h e glu.h). Essas alterações são válidas?
Também tive problema com o comando Exit no menu que aparece com o botão direito, ele trava o programa. Aparentemente, isso deixa de acontecer quando eu comento
glutDestroyWindow(win);
na função menu(), assim:
if(value == QUIT){
/*glutDestroyWindow(win);*/
exit(0);
}
Também é válido? (Eu não sei se é esse o problema, mas acho que a variável "win" nunca é inicializada)
Acredito que nada impede que vocês alterem o que foi dado.
Ccaso vejam a necessidade podem usar.
Ccaso vejam a necessidade podem usar.
estas duas funções estao liberadas?
glTranslatef(x,y,z)
glRotatef(Angulo, x, y, z)
em suma, se eu encontrar algo interessante no Glut ou no OpenGL, posso aplicar?
glTranslatef(x,y,z)
glRotatef(Angulo, x, y, z)
em suma, se eu encontrar algo interessante no Glut ou no OpenGL, posso aplicar?