j'ai une petite question, voila je debute en openGL, mais je voudrais
avoir un pti renseignement, est-ce que dans openGL, chaque axe de
l'espace ne depasse pas l'interval [-1.0;1.0]. Moi mon but est de
faire une map, donc pour l'instant j'apprend mais bon c pour la suite
que je voudrais savoir ça. sinon pour la camera, avec glulookat,
j'ai fait un programme qui est censé faire tourner une camera autour
d'un triangle plat (2D) seulement apparemment le triangle fait un
cercle mais devant la camera .
voici mon prog
/* inclusion des fichiers d'en-tete Glut */
#include <glut.h>
#include <math.h>
#include <stdio.h>
void affichage();
void clavier(unsigned char touche,int x,int y);
double anglescamera[80][2];
int angle;
int main(int argc,char **argv)
{
int i;
angle = 0;
/* initialisation de glut et creation
de la fenetre */
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowPosition(10,10);
glutInitWindowSize(800,600);
glutCreateWindow("principale");
for (i=0;i<=79;i++){
anglescamera[i][0] = cos(((3.1415927*2.0)/360.0)*4.5*(float)i);
anglescamera[i][1] = sin(((3.1415927*2.0)/360.0)*4.5*(float)i);
//printf ("x=%f et z=%f ",anglescamera[i][0],anglescamera[i][1]);
}
/* Initialisation d'OpenGL */
glClearColor(0.0,0.0,0.0,0.0);
glColor3f(1.0,1.0,1.0);
glPointSize(2.0);
/* enregistrement des fonctions de rappel */
glutDisplayFunc(affichage);
glutKeyboardFunc(clavier);
/* Entree dans la boucle principale glut */
glutMainLoop();
return 0;
}
void affichage()
{
/* effacement de l'image avec la couleur de fond */
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
gluLookAt(anglescamera[angle][0],0.5,anglescamera[angle][1],0.0,0.0,10.0,0.0,0.1,0.0);
/* Dessin du polygone */
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0);
glVertex3f(0.0,1.0,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(0.5,0.0,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(-0.5,0.0,0.0);
glEnd();
glFlush();
/* on force l'affichage du resultat */
glutSwapBuffers();
}
void clavier(unsigned char touche,int x,int y)
{
switch (touche)
{
case 'p': /* affichage du carre plein */
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glutPostRedisplay();
angle +=1;
if (angle > 79) angle -=80;
printf ("x=%f et z=%f \n",anglescamera[angle][0],anglescamera[angle][1]);
break;
case 'f': /* affichage en mode fil de fer */
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
glutPostRedisplay();
break;
case 's' : /* Affichage en mode sommets seuls */
glPolygonMode(GL_FRONT_AND_BACK,GL_POINT);
glutPostRedisplay();
break;
case 'q' : /*la touche 'q' permet de quitter le programme */
exit(0);
}
}
pouvez vous m'aider??
@+
Sebrs1
PS (qui ne signifie pas playstation :-)) : visitez mon site qui fait ses début svp
http://universal-glandeur.fr.st