Hi!! I´m trying to implement a zoom camera using the mouse, and glulookat. Here is my code:
float eyesx = 0.0, eyesy = 0.0, eyesz = 20.0, zoom = 0.01, lasty;
void mouse(int button, int state, int x, int y)
{
float direccion = 1;
float ydelta = lasty - y;
if(ydelta>0){
direccion*=-1;
}else{
direccion*=1;
}
if (button == GLUT_LEFT_BUTTON) {
if (state == GLUT_DOWN) {
lasty = y;
if(direccion>0){
//eyesx+=eyesx*zoom;
//eyesy+=eyesy*zoom;
eyesz+=eyesz*zoom;
}else{
//eyesx-=eyesx*zoom;
//eyesy-=eyesy*zoom;
eyesz-=eyesz*zoom;
}
} else {
lasty = y;
}
}
glutPostRedisplay();
}
void display(void)
{
gluLookAt (eyesx, eyesy, eyesz, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
printf("eyesx, eyesy, eyesz: %f %f %f
", eyesx, eyesy, eyesz);
drawCube();
glutSwapBuffers();
}
When I run it, no mather what I do, even tough eyesz increases or diminishes; the scene still zooms out.
Some help is welcomed!!