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
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...
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
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...
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
hazte una miniaplicación que sólo haga eso y resuélvelo, debuggalo, etc.
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
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/
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