Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: kittie4man en 16 de Julio de 2008, 06:03:00 PM

Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: kittie4man en 16 de Julio de 2008, 06:03:00 PM
Hola a todos!!

Estoy teniendo problema con las matemáticas.
Tengo claro que tengo que usar seno y coseno pero no logro entender el algoritmo a aplicar para realizar lo que necesito.

Mi problema es sencillo.
Tengo un objeto que tiene que rotar ( glRotatef ) según la X e Y del mouse. Lo que no logro hacer es obtener el ángulo del mouse respecto al objeto.

Buscando por ahí encontré que se hace con la función atan2f. Yo lo tengo implementado así:
_angleMouse = atan2f( x - _x, y - _y )*180;
Esto hace que el objeto gire pero mirando hacia cualquier lado. No corresponde con la posición del mouse.

Lo que busco es obtener el ángulo según X e Y de origen (objeto a girar) y de destino (mouse).
Mi idea es entender esto y no solo solucionar mi problema actual.

Desde ya muchas gracias.

Salu2
Juan Pablo
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: [EX3] en 16 de Julio de 2008, 08:55:30 PM
A tu funcion le falta dividir por pi (3,141592) para obtener el resultado correcto, osease:
_angleMouse = atan2f( x - _x, y - _y )*180\pi;
Salu2...
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: kittie4man en 16 de Julio de 2008, 09:13:35 PM
Cita de: "[EX3"]A tu funcion le falta dividir por pi (3,141592) para obtener el resultado correcto, osease:
_angleMouse = atan2f( x - _x, y - _y )*180\pi;
Salu2...

Gracias por responder.

El método que uso es así:
void cCharacter::rotate(float x, float y){
float xTmp = x-_x;
float yTmp = y-_y;

_angleView = atan2f( xTmp, yTmp )*180/M_PI;
}


Por parámetro le paso las coordenadas del mouse (x e y). _x e _y (con guión bajo delante) son las del objeto que debe mirar al mouse.
Con _angleView giro el objeto con el glRotatef( _angleView, 0.0, 0.0, 1.0 );.

Por algún motivo sigue girando mal, osea, no sigue al mouse con su rotación y no puedo encontrar el error.
Espero que puedas ayudarme.

Gracias
Salu2
Juan Pablo
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: [EX3] en 16 de Julio de 2008, 09:16:40 PM
Verifica de la funcion de calculo de angulo te devuelve el angulo correcto. Al menos asi la tengo yo en mi libreria y esta funciona correctamente. Si el error esta en la funcion de OpenGL ahi no se decirte por que no programo con esta api.

Salu2...
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: kittie4man en 16 de Julio de 2008, 09:30:48 PM
Cita de: "[EX3"]Verifica de la funcion de calculo de angulo te devuelve el angulo correcto. Al menos asi la tengo yo en mi libreria y esta funciona correctamente. Si el error esta en la funcion de OpenGL ahi no se decirte por que no programo con esta api.

Salu2...

Ex3, muchas gracias.

El problema no estaba en la función que usaba para calcular el ángulo (o eso creo por el momento) sino en el manejo de la cámara y glLookAt.

La cámara es algo que nunca voy a poder dominar ya que hace tiempo que tengo problemas y no los puedo solucionar. Pensé que ya estaba solucionado lo de la cámara y glLookAt pero ahora veo que no estaban solucionados.

Nuevamente, muchas gracias por la respuesta.

Salu2
Juan Pablo
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: Buffon en 17 de Julio de 2008, 09:50:38 AM
hazte una miniaplicación que sólo haga eso y resuélvelo, debuggalo, etc.
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: kittie4man en 17 de Julio de 2008, 03:32:50 PM
Cita de: "Buffon"hazte una miniaplicación que sólo haga eso y resuélvelo, debuggalo, etc.

http://mail.google.com/mail/?ui=2&view=js&name=js&ver=80lCHVuPxfI&am=T_E4pcLnE08YZQ

Que es el link ese??
Parece ser un link a un mail de google. =S
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: Buffon en 18 de Julio de 2008, 09:07:46 AM
Cita de: "kittie4man"
Cita de: "Buffon"hazte una miniaplicación que sólo haga eso y resuélvelo, debuggalo, etc.

http://mail.google.com/mail/?ui=2&view=js&name=js&ver=80lCHVuPxfI&am=T_E4pcLnE08YZQ

Que es el link ese??
Parece ser un link a un mail de google. =S

imagínate si estaba dormido xD

http://betterexplained.com/articles/measure-any-distance-with-the-pythagorean-theorem/
Título: [AYUDA] Obtener angulo para que un objeto "mire" a
Publicado por: kittie4man en 18 de Julio de 2008, 03:26:28 PM
Cita de: "Buffon"
Cita de: "kittie4man"
Cita de: "Buffon"hazte una miniaplicación que sólo haga eso y resuélvelo, debuggalo, etc.

http://mail.google.com/mail/?ui=2&view=js&name=js&ver=80lCHVuPxfI&am=T_E4pcLnE08YZQ

Que es el link ese??
Parece ser un link a un mail de google. =S

imagínate si estaba dormido xD

http://betterexplained.com/articles/measure-any-distance-with-the-pythagorean-theorem/

Jajaja, muchas gracias por el link, esta muy bueno por lo poco que vi.
Después lo vere con mas cuidado.

Salu2
Juan Pablo