Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Autor Tema: Confucion con las funciones trigonometricas del GML (sin, cos,tan...)  (Leído 2219 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado knd144

  • Okupa
  • *
  • Puntos: 208
  • Mensajes: 520
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nunca pienso en el futuro, llega demasiado pronto.
    • Ver Perfil
    • Rincon knd144
Estoy haciendo un trabajillo con el Game Maker y necesito utilizar las funciones de seno, coseno y tangente pero en el manual me encontré con que devuelve (en caso del seno) el seno de x pero que x en radianes  ???
La verdad no entiendo a que se refiere con eso, yo lo que quiero es realizar calculos vectoriales, o sea tendiendo un vector, sacarle los componentes horizontales y verticales, y para eso necesito el seno y el coseno pero no entiendo eso de los radianes. Encontré despues una funcion que me convierte los radianes en grados y los grados en radianes pero no se como me pueden ayudar.
Además de que tengo otro propósito para la tangente que es sacar la inversa a la tangente, o sea tan-1 y de eso menos viene explicado en el manual  :'(
Toda via hay cosas que no entiendo de como funciona bien el GM por eso pido esta ayuda.

Desde ya gracias  ;)
« última modificación: Diciembre 17, 2009, 06:25:01 pm por knd144 »




Rincon knd144
-Proyecto Aquilesvania 60%
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Alfonsos1

Respuesta #1 en: Diciembre 17, 2009, 12:34:20 am
los radianes al igual que los grados son medidas de angulo

las fonciones radtodeg() y degtorad() combierten de radianes a grados y biseversa

puedes poner asi por ejemplo

cos(degtorad(45));//coseno de 45 grados

 


Desconectado bonachiu

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 130
    • Ver Perfil
Respuesta #2 en: Diciembre 17, 2009, 12:37:39 am
Facilmente, aqui en game maker tenemos como componentes posibles de un vector en 2D la X y la Y, y como propiedades de un vector tenemos las variables direction y speed (podrian ser cualquieras otras pero generalmente se usa para esto)

Bien.. supongamos que tenemos un vector, con una direccion asociada y un modulo

direccion=60; //en grados
modulo=25; //en pixels

ahora queremos hayar su componente horizontal, facilmente:

comp_horizontal=modulo*cos(degtorad(direccion)); //usamos degtorad para pasar de grados a radianes
comp_vertical=-modulo*sin(degtorad(direccion)); //usamos el - porque en los juegos el Y negativo es el que asciende

Y ahora ponle que querriamos hacer el proceso inverso, teniendo una componente horizontal y una vertical crear una direccion y un modulo, vamos a valernos de la funcion arctan2(y,x) es como una version mejorada de arctan(x) [Arco Tangente] en la que te coloca el angulo en el cuadrante correcto de las dos posibilidades que hay siempre en estas funciones inversas

direccion=radtodeg(arctan2(-comp_vertical,comp_horizontal)); //arctan2 nos devuelve el angulo en radianes lo volvemos a pasar a grados, y al mismo tiempo ponemos comp_vertical en negativo para deshacer el apaño que hicimos
modulo=sqrt(sqr(comp_horizontal)+sqr(comp_vertical));


Y ahi lo tenemos, aplicado!

Game maker automaticamente direction y speed las subdivide en vspeed y hspeed de forma analoga a como lo he hecho antes, dependiendo de qué detecte que tu en el codigo estes modificando, si las hspeed o vspeed o si la direccion y la speed cambiara las otras dos de una forma o la otra
« última modificación: Diciembre 17, 2009, 12:41:39 am por bonachiu »

 


Desconectado Soujiro

  • Okupa
  • *
  • Puntos: 0
  • Mensajes: 1.978
  • Sexo: Masculino
  • ◕ ◡ ◕
    • Ver Perfil
Respuesta #3 en: Diciembre 17, 2009, 03:49:53 am
Te conviene armarte las funciones trigonometricas propias para ahorrarte poner el degtorad todo el tiempo, como hizo el amigo markus. Pegale una ojeada:
http://www.comunidadgm.org/index.php?topic=9707.0

ya que estamos, acordate del icono ;]

 


Desconectado knd144

  • Okupa
  • *
  • Puntos: 208
  • Mensajes: 520
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nunca pienso en el futuro, llega demasiado pronto.
    • Ver Perfil
    • Rincon knd144
Respuesta #4 en: Diciembre 17, 2009, 07:16:41 pm
pues gracias bonachiu por quitarme la duda y darme casi resuelto el problema  :-[
No habia pensado eso de vspeed y hspeed, voy a ver si lo puedo aplicar sin ningun problema.

Tambien gracias alfonsos y soujiro. Las funciones de markus no me acordaba de ellas  XD pero vaya que me van a quitar de lios.

P.D.: Ya correji lo del iconito, no me acorde de cambiarlo

SALUDOS




Rincon knd144
-Proyecto Aquilesvania 60%