• Viernes 8 de Noviembre de 2024, 21:51

Autor Tema:  Transformación De Coordenadas  (Leído 2199 veces)

bmenlop2

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Transformación De Coordenadas
« en: Jueves 29 de Noviembre de 2007, 13:17 »
0
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 acerca de ello y he visto algún sitio en el que se habla del Picking. He estado consultando el tutorial de Picking (lesson 32) que se encuentra en la página de nehe, pero creo que éste 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 ayuda recibida.

Saludos.
Begoña.

killito

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Transformación De Coordenadas
« Respuesta #1 en: Domingo 23 de Diciembre de 2007, 19:38 »
0
Tienes que hacerlo con esa funcion pero teniendo cuidado con los tipos de datos ya que son double, tienes que fijarte bien en el ejemplo del libro rojo y fijarte en el ultimo parametro, que puede ser 0.0 o 1.0

ArquiTEC

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Transformación De Coordenadas
« Respuesta #2 en: Domingo 9 de Noviembre de 2008, 10:20 »
0
Yo lo he programado a mano y me funciona permitiendome crear y desplazar objetos en la escena en el punto exacto donde he clickado. Desconocia la funcion gluUnProject a ver si realiza automaticamente todo lo que yo tuve que ingeniarme. Es complicado de explicar. La base teorica es que sabiendo las coordenadas exactas de la camara y del target o punto hacia donde mira, junto a la obertura angular; es possible imaginarse en el target "un plano" perpendicular a la direccion de vision, con su marco coincidente a la pantalla. Es posible transportar los pixeles 2D al hacer click, con las coordenadas exactas en este hipotetico plano. Una vez encontradas se traza una linea desde la camara a estas coodenadas y se sigue esta hasta llegar al plano de trabajo. Alli encontraremos las coordenadas exactas 3D. Ponte en contacto conmigo.Saludos