Transformación de coordenadas
Publicado por Begoña (1 intervención) el 29/11/2007 12:47:21
Hola,
mi problema es el siguiente:
Quiero transformar un punto expresado en coordenadas de pantalla (obtenidas con el ratón) a coordenadas de mi mundo virtual.
He estado leyendo en el foro acerca de ello y he visto un mensaje en el que se habla del Picking. He estado consultando el siguiente tutorial:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=32
pero creo que este no es exactamente mi problema, ya que yo no quiero seleccionar ningún objeto con el ratón sino sólo obtener las coordenas para luego poder dibujar ese punto.
He probado a implementar una función que calcula manualmente la transformación de coordenadas mediante las siguientes fórmulas:
Xu = (Xm-X1) / (X2-X1)
Yu = (Ym-Y1) / (Y2 -Y1)
Xp = W * Xu
Yp = H * (1 - Yu)
pero no consigo que funcione correctamente ya que al dibujar luego los puntos, estos no aparecen en la pantalla, pero no en el lugar deseado.
Por otro lado también lo he intentado con la función gluUnProject pero elija el punto me devuelve unas coordenas que, aunque están dentro del mundo virtual, son, en todos los casos, muy similares, por no decir iguales, con lo que, tampoco consigo que funcione correctamente.
Estaría muy agradecida con cualquier tipo de ayuda recibida.
Saludos.
Begoña.
mi problema es el siguiente:
Quiero transformar un punto expresado en coordenadas de pantalla (obtenidas con el ratón) a coordenadas de mi mundo virtual.
He estado leyendo en el foro acerca de ello y he visto un mensaje en el que se habla del Picking. He estado consultando el siguiente tutorial:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=32
pero creo que este no es exactamente mi problema, ya que yo no quiero seleccionar ningún objeto con el ratón sino sólo obtener las coordenas para luego poder dibujar ese punto.
He probado a implementar una función que calcula manualmente la transformación de coordenadas mediante las siguientes fórmulas:
Xu = (Xm-X1) / (X2-X1)
Yu = (Ym-Y1) / (Y2 -Y1)
Xp = W * Xu
Yp = H * (1 - Yu)
pero no consigo que funcione correctamente ya que al dibujar luego los puntos, estos no aparecen en la pantalla, pero no en el lugar deseado.
Por otro lado también lo he intentado con la función gluUnProject pero elija el punto me devuelve unas coordenas que, aunque están dentro del mundo virtual, son, en todos los casos, muy similares, por no decir iguales, con lo que, tampoco consigo que funcione correctamente.
Estaría muy agradecida con cualquier tipo de ayuda recibida.
Saludos.
Begoña.
Valora esta pregunta


0