2010-06-06 17 views
7

Tengo una escena OpenGL con un sistema de coordenadas arriba a la izquierda. Cuando glScale se acerca desde (0,0) la parte superior izquierda. Quiero que se acerque desde la coordenada del mouse (relativa al marco OGL). ¿Cómo se hace esto? GraciasAlgoritmo para acercar el mouse (OpenGL)

Respuesta

10

creo que esto se puede hacer en cuatro pasos:

  1. hallar x e y las coordenadas del ratón utilizando cualquier función de su sistema de ventanas (es decir GLUT o SDL) tiene para eso, y utilizo gluUnProject para obtener las coordenadas de objetos que corresponden a las coordenadas de ventana
  2. Traducir por (x, y, 0) para poner el origen en esas coordenadas
  3. Escala por su vector deseado (i, j, k)
  4. Traducir por (- x, -y, 0) para poner el origen de nuevo en la parte superior l eft
3

Hice un acercamiento suave usando glortho. El esqueleto de mi solución es

glOrtho (inicial ventana gráfica x, y & tamaño)
glCallList (mi lista de visualización)
render
.
.
loop para ir gradualmente a las coordenadas/tamaño del viewrport final. Implemente su tiempo y los requisitos de FPS
.
.
glOrtho (última ventana x, y & tamaño)
glCallList (mi lista de visualización)
render

espero que consigue la idea general. Hay pocos otros métodos para lograr esto, pero creo que el método es el más fácil de comprender.

Cuestiones relacionadas