Nada, es que justo lo estaba usando yo. Por cierto, ya he empezado con la
engine del juego. Díselo a los interesados por fa.
Un saludo,
Sergio.
El día 21 de julio de 2008 17:58, Manuel David Jiménez Patiño <
[EMAIL PROTECTED]> escribió:
> Hola de nuevo.
>
> Gracias Ignacio y Sergio por la ayuda.
>
> Ignacio, probé tu idea y otras muy similares para intentar realizar zoom,
> pero todas dieron mal resultado.
>
> Por lo que busqué información sobre la función que me dijo Sergio,*gluLookAt.
>
> *Después de pelearme un poco con el código esto parece que ya hace zoom.
>
> El código me ha quedado de la siguiente manera:
>
>
>
> void raton_click (int boton, int estado, int x, int y) {
>
>
>
> if ((boton == GLUT_MIDDLE_BUTTON) && (estado == GLUT_DOWN)){ //Hacemos
> zoom al pinchar el botón central del ratón
>
>
> glViewport (0, 0, 680, 680);
> glMatrixMode (GL_PROJECTION);
> glLoadIdentity ();
> gluPerspective(75, 680.0 /680.0 , 0.10, 100.0);
> glMatrixMode(GL_MODELVIEW);
> glLoadIdentity();
> * gluLookAt* (0.0, 0.0, 20.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
> //Acercamos la cámara a los objetos
>
>
> }
>
> else
> if ((boton == GLUT_RIGHT_BUTTON) && (estado == GLUT_DOWN)){
> //Volvemos a la posición inicial
>
> glMatrixMode(GL_PROJECTION);
> glLoadIdentity();
> glOrtho(-55.0, 55.0, -55.0, 55.0, -30.0, 300.0);
> glMatrixMode(GL_MODELVIEW);
>
> }
> }
>
>
>
> En algunos momentos, también pensé y probé a utilizar:
>
> * void glTranslate{fd}(TYPE x, TYPE y, TYPE z);*
>
> Para acercar los objetos a la cámara, pero algo hice mal, no me salió bien.
>
> Información que me ha servido de ayuda:
>
> http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glu/lookat.html
> http://usuarios.lycos.es/andromeda_studios/paginas/tutoriales/aptutgl01.htm
> OpenGL programming Guide
>
>
> Saludos y gracias.
>
>
> *
> *
> 2008/7/17 Ignacio Díez Arias <[EMAIL PROTECTED]>:
>
> Si quieres que te haga el zoom centrado en las coordenadas del ratón,
>> debería ser algo así como:
>>
>> void raton_click (int boton, int estado_boton, int x, int y) {
>> if ((boton == GLUT_MIDDLE_BUTTON) && (estado_boton == GLUT_DOWN)){
>> zoom *-=* 0.20;
>> glViewport (x-(zoom/2), y-(zoom/2), zoom, zoom);
>> glutPostRedisplay();
>> }
>> }
>>
>> Nacho
>>
>>
>> Manuel David Jiménez Patiño escribió:
>>
>>> Hola a todos/as.
>>>
>>> Intento hacer zoom en una ventana creada mediante OpenGL.
>>>
>>> Para ello he creado una función llamada:
>>>
>>> void raton_click (int boton, int estado_boton, int x, int y);
>>>
>>>
>>> la quiero utilizar cunado se detecta algún evento en el ratón, para ello:
>>>
>>> glutMouseFunc (raton_click);
>>>
>>>
>>> Dentro de la función mouse_click, tengo:
>>>
>>> void raton_click (int boton, int estado_boton, int x, int y) {
>>> if ((boton == GLUT_MIDDLE_BUTTON) && (estado_boton == GLUT_DOWN)){
>>> zoom *+=* 0.20;
>>> glViewport (0, 0, zoom, zoom);
>>> glutPostRedisplay();
>>> }
>>>
>>> }
>>>
>>>
>>> He leído que glViewport es para fijar vistas:
>>>
>>> void glViewport (GLint x, GLint y, GLsizei ancho, GLsizei alto)
>>>
>>> Los parámetros x e y especifican la esquina inferior izquierda de la
>>> vista dentro de la ventana, y los parámetros ancho y alto especifican las
>>> dimensiones en pixels.
>>> http://www.alobbs.com/revistas/opengl2
>>>
>>> Pero algo falla, es decir, hacer zoom hace, pero a la vez que me hace
>>> zoom me desplaza los objetos hacia un lado y llega un momento que
>>> desaparecen.
>>>
>>> Para corregir lo anterior pensé hacer dentro de la función raton_click:
>>>
>>> if ((boton == GLUT_RIGHT_BUTTON && (estado_boton == GLUT_DOWN)){
>>> zoom -*=* 0.20;
>>> glViewport (0, 0, zoom, zoom);
>>> glutPostRedisplay();
>>> }
>>>
>>>
>>> Pero al hacer esto me hace los objetos más pequeños pero igualmente me
>>> los lleva para el otro lado.
>>>
>>> ¿Alguno de ustedes se ha viso en la situación de hacer zoom mediante
>>> OpenGl?
>>> Me conformaría si los objetos no se moviesen para los lados.
>>>
>>> Agradecería cualquier ayuda.
>>>
>>>
>>>
>>> Un saludo amigos.
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> CRySoL mailing list
>>> http://crysol.inf-cr.uclm.es/
>>> https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol
>>>
>>>
>>
>> _______________________________________________
>> CRySoL mailing list
>> http://crysol.inf-cr.uclm.es/
>> https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol
>>
>>
>
> _______________________________________________
> CRySoL mailing list
> http://crysol.inf-cr.uclm.es/
> https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol
>
>
_______________________________________________
CRySoL mailing list
http://crysol.inf-cr.uclm.es/
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol