begin process at 2012 05 29 18:33:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

pb incrementation variable.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb incrementation variable.

mercredi 3 décembre 2003 à 19:10:53 | pb incrementation variable.

conan76

Voila j'ai passé l'après midi a chercher d'ou vient mon problème sans succès.

je tente même de faire des affichages console avant et après incrémentation, rien n'y fait :

printf("avant : %4d",camy);
camy+=8.0;
printf("apres : %4d\n",camy);

voici donc le code, pour que vous puissiez voir de vos yeux, moi je comprend plus rien :
visual C++ 6



#include <windows.h>
#include <math.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glut.h>
#include <stdio.h>

static GLfloat g_nearPlane = 1;
static GLfloat g_farPlane = 1000;

int frame,time,timebase=0;
float fps;
char fpstxt[10];
bool lPress,rPress;
int mouseX,mouseY;
int rollX=0,rollY=0;
GLuint solList;
int nbtriangle;
const float PI = 3.1415926536;
double radian= 180/PI;
float rotatex=0,rotatey=0,rotatez=0;
float camx=0,camy=0,camz=0;

// =======================================
void sol()
{
solList = glGenLists(1);
glNewList(solList, GL_COMPILE);

float z=0.0;
float pasj=0.2;
float pasi=0.2;
nbtriangle=0;

for (float j=0; j<16; j=j+pasj)
{
for(float i=0; i<16; i=i+pasi)
{
glColor3f(1.0, 0.0, 0.0);
glVertex3f(i, j, z);
glVertex3f(i, j+pasj, z);
glVertex3f(i+pasi, j, z);

glColor3f(0.0, 1.0, 0.0);
glVertex3f(i, j+pasj, z);
glVertex3f(i+pasi, j+pasj, z);
glVertex3f(i+pasi, j, z);

nbtriangle+=2;
}
}

glEndList();
}
// ----------------------------------------
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);

}
// ----------------------------------------
void printFPS(void)
{
frame++;
time=glutGet(GLUT_ELAPSED_TIME);
if (time - timebase > 1000)
{
fps=frame*1000.0/(time-timebase);
sprintf(fpstxt,"FPS: %4.2f triangle : %4d",fps, nbtriangle);
glutSetWindowTitle(fpstxt);
timebase = time;
frame = 0;
}
}
// ---------------------------------------
void mouse(int button, int state, int x, int y)
{
switch (button)
{
case GLUT_LEFT_BUTTON:
if (state == GLUT_DOWN)
{
lPress=1;
mouseX=x;
mouseY=y;
//printf("Bt G : %4d %4d\n",x,y);
}
else
lPress=0;
break;

case GLUT_RIGHT_BUTTON:
if (state == GLUT_DOWN)
{
rPress=1;
mouseX=x;
mouseY=y;
//printf("Bt D : %4d %4d\n",x,y);
}
else
rPress=0;
break;

default:
break;
}
}
// ---------------------------------------
void mousemotion(int x,int y)
{
if (rPress)
{
printf("oldX : %4d / X : %4d oldY : %4d /Y : %4d /Camy : %4d\n", mouseX,x,mouseY,y,camy);

/*if (x<mouseX)
camx-=1;
else
camx+=1;
*/
if (y<mouseY)
{
printf("avant : %4d",camy);
camy+=8.0;
printf("apres : %4d\n",camy);
}
else
camy+=1;


mouseX=x;
mouseY=y;
}



glutPostRedisplay();
}
// ---------------------------------------
void mousePassiveMotion(int x,int y)
{
//printf("Pos : %4d %4d\n",x,y);
}

// ---------------------------------------
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
camx*=cos(rotatex/radian)*cos(rotatey/radian);
camy*=cos(rotatex/radian)*sin(rotatey/radian);
camz*=sin(rotatex/radian);


gluLookAt(camx, camy, 20.0, 8.0, 8.0, 0.0, 0.0, 0.0, 1.0);


glTranslatef(0,0,0);
glBegin(GL_TRIANGLES);

glCallList(solList);

glEnd();

printFPS();
glFlush();
glutSwapBuffers();
glutPostRedisplay();
}
// ---------------------------------------
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (float)w / h, g_nearPlane, g_farPlane);
glMatrixMode(GL_MODELVIEW);



}
// ---------------------------------------
int main(int argc, char **argv)
{

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(800,600);
glutCreateWindow("Vince");
init();sol();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMotionFunc(mousemotion);
glutPassiveMotionFunc(mousePassiveMotion);
glutMainLoop();

return(0);
}


Merci de votre aide.
mercredi 3 décembre 2003 à 19:21:39 | Re : pb incrementation variable.

aardman

Membre Club
Salut,
Un float s'affiche dans printf() avec %f.
jeudi 4 décembre 2003 à 10:05:18 | Re : pb incrementation variable.

conan76


Oui, j'ai corrigé, mais comme tu le vois en testant, même en continuant à monter la souris en Y, et bien par moment elle retourne a 0 d'un coup.
vendredi 5 décembre 2003 à 20:15:38 | Re : pb incrementation variable.

aardman

Membre Club
Salut,
J'ai pas tout les headers, glu et compagnie donc je peux pas compiler pour tester.
camy est un float, donc camy+=8.0; est parfaitement valide.
Ton erreur doit se trouver autre part.


Cette discussion est classée dans : int, printf, float, 4d, camy


Répondre à ce message

Sujets en rapport avec ce message

Afficher un float a l'ecran, %f de printf [ par kaervas ] Bonjour, je suis en train de coder la fonction %f de printf, je galere un peu en fait! Pour le %d on utilise des modulos et des puissances decroissant algorithme de greedy [ par starbluesky ] <link rel="Fi aidez-moi s'il vous plait !!!!!!!! [ par starbluesky ] Salut a tous! aidez-moi s'il vous plait  !! Je suis un étudiant en mastè Besoin d'aide-Interface Graphique [ par nissan1 ] Bonjour, s'il vous plait je suis debutant en programmation et j'ai fait un programme en C sous l'IDE codeblocks, qui utilise les elements d'une matri calculs tableau [ par 3463 ] Salut à tous !! J'ai besoin de votre aide [^^happy13] Voici mon programme : # include # include # include # include # include # include # incl Tableau C [ par 3463 ] Salut à tous j'ai vraiment besoin de votre aide !! [code=cpp] # include # include # include # include # include # include # include using nam xilinx [ par mourdad ] salut j'ai un code c++ et j'aimerias le transformer en xilinx quelqu'un peut m'aider???????? je sais pas comment transformer le new :'( voici le code fonction en c [ par badsha ] j'ai un code qui inverse une matrice et je veux l'appliquer sur plusieurs matrices je n'arrive pas à mettre à l'entrée de la fonction des matrices, je matrice au secour.......!!!! [ par badsha ] Bonjour a tous, j'ai une fonction dsvd qui a en entrée matrice a, dimension m et n et elle retourne w et v int dsvd(float **a, int m, int n, float génerateur des nombres aléatoire (GLC) [ par adola2003 ] bonjour, j`ai un devoir a remettre la semaine prochaine concernant le génerateur des nombres aléatoires LCG avec F<9 (facteur) I<5 (increment) M (modu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales