bonjours, dans un programme je veux placer la camera à des positions précises , pour cela j'ai utilisé la fonction idle. mon problème est: lorsque j'écris eyex +=r; les choses ne marchent plus,mais lorsque je remplace la variable r par sa valeur numérique (eyex +=1.026) ça marche bien !! qu'est ce qu'il faut faire pour régler ce truc ? (sachant que je suis obligé d'utiliser la variable et non pas sa valeur numérique )
le code est le suivant:
cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 double r;// rayon de l'objet affiché static double eyex=-r,eyey=-r,eyez=-r; void GLUTRedraw(void) { ...... ....... gluLookAt((GLfloat)eyex,(GLfloat)eyey,(GLfloat)eyez,gx,gy,gz,ux,uy,uz); .... r=sqrt((carre(gx))+(carre(gy))+(carre(gz))); ..... } static void idle(void) { eyex +=r; if (eyex > (2*r)) { eyex=-r;eyey +=r; if (eyey > (2*r)) { eyex=-r; eyey=-r;eyez +=r; if (eyez>(3*r)) { fprintf(f,"%s\t",myObjet);fprintf(f,"\n"); exit(0); } } } glutPostRedisplay(); }
Partager