Problèmes avec Dev c++, OpenGL et Glut
Dernière réponse : dans Programmation
Bonjour,
Alors voila en fait j'ai un gros projet à faire dans le cadre de mes études, et j'ai choisi (avec mon groupe de projet) de faire un moteur 3D. Nous avons trouvé des didact sur internet et nous avons essayé de tester les codes sources avec dev c++. Le problème c'est que ça ne compile pas!!! et comme je ne suis pas une pro de glut et openGl, je ne sais pas ce qui cloche dans le code... je vous donne le code :
/********************************************************/
/* ballade.c */
/********************************************************/
/* Petite ballade dans un monde (reduit) en fil de fer */
/********************************************************/
/* inclusion des fichiers d'entete Glut */
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <math.h>
void display();
void keyboard(unsigned char key,int x, int y);
void mousePress(int bouton,int state,int x,int y);
void MouseMotion(int x,int y);
void calcCosSinTable();
void testPosition();
void changePerspective();
float pz=0.0,px=0.0,Sin[360],Cos[360],theta=50;
int xold,r=0;
int main(int argc,char **argv)
{
/* initialisation de glut et creation
de la fenetre */
glutInit(
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
glutInitWindowPosition(200,200);
glutInitWindowSize(500,500);
glutCreateWindow("29");
/* Initialisation d'OpenGL */
glClearColor(0.0,0.0,0.0,0.0);
changePerspective();
/* Precalcul des sinus et cosinus */
calcCosSinTable();
/* enregistrement des fonctions de rappel */
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mousePress);
glutMotionFunc(MouseMotion);
/* Entre dans la boucle principale glut */
glutMainLoop();
return 0;
}
void display()
{
/* effacement de l'image avec la couleur de fond */
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
/*Application des transfos de visualisation */
glRotated(r,0.0,1.0,0.0);
glTranslatef(−px,0.0,−pz);
glPushMatrix();
/* Dessin des objets */
glTranslatef(0,1.5,0);
glScalef(1.0,0.25,1.0);
glColor3d(1,0,0);
glutWireCube(20);
glPopMatrix();
glPushMatrix();
glTranslated(5,−1,5);
glRotated(−90,1,0,0);
glColor3f(1.0,1.0,1.0);
glutWireCone(1,2,20,1);
glPopMatrix();
glPushMatrix();
glTranslated(−5,0,5);
glutWireTorus(0.2,0.8,20,30);
glPopMatrix();
glPushMatrix();
glTranslated(5,0,−5);
glutWireCube(2);
glPopMatrix();
glTranslated(−5,0,−5);
glutWireSphere(1,20,20);
/* on force l'affichage du resultat */
glFlush();
glutSwapBuffers();
}
void keyboard(unsigned char key,int x, int y)
{
switch (key)
{
case 'q':
exit(0);
case 'z':
pz−=0.5*Cos[r];
px+=0.5*Sin[r];
testPosition();
glutPostRedisplay();
break;
case 's':
pz+=0.5*Cos[r];
px−=0.5*Sin[r];
testPosition();
glutPostRedisplay();
break;
case 'b':
theta+=1;
if (theta>180)
theta=180;
changePerspective();
glutPostRedisplay();
break;
case 'n':
theta−=1;
if (theta<0)
theta=0;
changePerspective();
glutPostRedisplay();
break;
}
}
void mousePress(int bouton,int state,int x,int y)
{
if (bouton==GLUT_LEFT_BUTTONN){
xold=x;
}
}
void MouseMotion(int x,int y)
{
r+=x−xold;
if (r>=360)
r−=360;
if (r<0)
r=360+r;
xold=x;
glutPostRedisplay();
}
void calcCosSinTable()
{
int i;
for (i=0;i<360;i++){
Sin=sin(i/360.0*6.283185);
Cos=cos(i/360.0*6.283185);
}
}
void testPosition()
{
if (px>9.8)
px=9.8;
if (px<−9.8)
px=−9.8;
if (pz>9.8)
pz=9.8;
if (pz<−9.8)
pz=−9.8;
}
void changePerspective()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(theta,1.0,0.1,40.0);
glMatrixMode(GL_MODELVIEW);
}
Voilà j'espère qu'un amatteur ou un pro passeront par là pour m'aider... vite...
Merci!!
Alors voila en fait j'ai un gros projet à faire dans le cadre de mes études, et j'ai choisi (avec mon groupe de projet) de faire un moteur 3D. Nous avons trouvé des didact sur internet et nous avons essayé de tester les codes sources avec dev c++. Le problème c'est que ça ne compile pas!!! et comme je ne suis pas une pro de glut et openGl, je ne sais pas ce qui cloche dans le code... je vous donne le code :
/********************************************************/
/* ballade.c */
/********************************************************/
/* Petite ballade dans un monde (reduit) en fil de fer */
/********************************************************/
/* inclusion des fichiers d'entete Glut */
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <math.h>
void display();
void keyboard(unsigned char key,int x, int y);
void mousePress(int bouton,int state,int x,int y);
void MouseMotion(int x,int y);
void calcCosSinTable();
void testPosition();
void changePerspective();
float pz=0.0,px=0.0,Sin[360],Cos[360],theta=50;
int xold,r=0;
int main(int argc,char **argv)
{
/* initialisation de glut et creation
de la fenetre */
glutInit(
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
glutInitWindowPosition(200,200);
glutInitWindowSize(500,500);
glutCreateWindow("29");
/* Initialisation d'OpenGL */
glClearColor(0.0,0.0,0.0,0.0);
changePerspective();
/* Precalcul des sinus et cosinus */
calcCosSinTable();
/* enregistrement des fonctions de rappel */
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mousePress);
glutMotionFunc(MouseMotion);
/* Entre dans la boucle principale glut */
glutMainLoop();
return 0;
}
void display()
{
/* effacement de l'image avec la couleur de fond */
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
/*Application des transfos de visualisation */
glRotated(r,0.0,1.0,0.0);
glTranslatef(−px,0.0,−pz);
glPushMatrix();
/* Dessin des objets */
glTranslatef(0,1.5,0);
glScalef(1.0,0.25,1.0);
glColor3d(1,0,0);
glutWireCube(20);
glPopMatrix();
glPushMatrix();
glTranslated(5,−1,5);
glRotated(−90,1,0,0);
glColor3f(1.0,1.0,1.0);
glutWireCone(1,2,20,1);
glPopMatrix();
glPushMatrix();
glTranslated(−5,0,5);
glutWireTorus(0.2,0.8,20,30);
glPopMatrix();
glPushMatrix();
glTranslated(5,0,−5);
glutWireCube(2);
glPopMatrix();
glTranslated(−5,0,−5);
glutWireSphere(1,20,20);
/* on force l'affichage du resultat */
glFlush();
glutSwapBuffers();
}
void keyboard(unsigned char key,int x, int y)
{
switch (key)
{
case 'q':
exit(0);
case 'z':
pz−=0.5*Cos[r];
px+=0.5*Sin[r];
testPosition();
glutPostRedisplay();
break;
case 's':
pz+=0.5*Cos[r];
px−=0.5*Sin[r];
testPosition();
glutPostRedisplay();
break;
case 'b':
theta+=1;
if (theta>180)
theta=180;
changePerspective();
glutPostRedisplay();
break;
case 'n':
theta−=1;
if (theta<0)
theta=0;
changePerspective();
glutPostRedisplay();
break;
}
}
void mousePress(int bouton,int state,int x,int y)
{
if (bouton==GLUT_LEFT_BUTTONN){
xold=x;
}
}
void MouseMotion(int x,int y)
{
r+=x−xold;
if (r>=360)
r−=360;
if (r<0)
r=360+r;
xold=x;
glutPostRedisplay();
}
void calcCosSinTable()
{
int i;
for (i=0;i<360;i++){
Sin=sin(i/360.0*6.283185);
Cos=cos(i/360.0*6.283185);
}
}
void testPosition()
{
if (px>9.8)
px=9.8;
if (px<−9.8)
px=−9.8;
if (pz>9.8)
pz=9.8;
if (pz<−9.8)
pz=−9.8;
}
void changePerspective()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(theta,1.0,0.1,40.0);
glMatrixMode(GL_MODELVIEW);
}
Voilà j'espère qu'un amatteur ou un pro passeront par là pour m'aider... vite...
Merci!!
Autres pages sur : problemes dev opengl glut
Lassé par la pub ? Créez un compte
Euh j'ai pensé à mettre les erreurs mais le problème c'est qu'il y en a énormément ... :-(
Elles sont toutes du genre :
[linker error] undefined reference to 'glutNomFonction'
Sinon j'avais oublié de mettre les arguments dans glutInit :
glutInit(&argc, argv);
et d'enlever un 'N' à '(bouton==GLUT_LEFT_BUTTONN)'
voilà
Elles sont toutes du genre :
[linker error] undefined reference to 'glutNomFonction'
Sinon j'avais oublié de mettre les arguments dans glutInit :
glutInit(&argc, argv);
et d'enlever un 'N' à '(bouton==GLUT_LEFT_BUTTONN)'
voilà
Citation :
brotelle a écrit :
Euh j'ai pensé à mettre les erreurs mais le problème c'est qu'il y en a énormément ... :-(
Elles sont toutes du genre :
[linker error] undefined reference to 'glutNomFonction'
donc c'est que tes bibliothèques ne peuvent pas être incluses. Est-ce que tu as indiqué le bon chemin dans le makefile ?
Lassé par la pub ? Créez un compte
- Contenus similaires :
- Forum[résolu] Probleme "importation" de GUI glade -> Dev c++
- ForumSVP problème Dev-Pascal
- Forumproblem de compilation en dev-ccp
- ForumAutre problème sous dev C++....
- ForumProblème de compilation en C avec Dev-C++
- ForumProbleme opengl sous CS 1.6
- ForumProbleme Dev-C++ impossible compilé
- Forum[PROBLEME]Couldn't load openGL
- ForumC++ Dev c++ Probleme avec la fonction sleep()
- Voir plus