Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Movimientos En Ode

Iniciado por vicho, 17 de Diciembre de 2004, 10:23:39 PM

« anterior - próximo »

vicho

 buenas, que tal?

desde hace un tiempo estoy metiendole mano a ODE para la fisica de el motor que estoy haciendo y me asalta una duda, pero antes explico la situacion: quiero manejar los movimientos de los personajes por lo tanto creo un dBodyId que me maneje el cuerpo con cordenadas etc. ahora quiero que el usuario pueda mover el cuerpo(que enrrealidad simula ser el personaje del jugador) si aplico una fuerza al cuerpo con dBodyAddForce el cuerpo terminara acelerandose (F=m*a) pero quiero que se mueva a una velocidad fija (osea si el jugador no se mueve su velocidad sea 0, si camina sea de magnitud R con la orientacion que el jugador quiera, si corre talvez la magnitud sea 3R, etc), quisiera saber como aplicar esto usando fuerzas (que es lo que se recomienda usar para la dinamica de los cuerpos) podria hacerlo usando dBodySetLinearVel y dBodySetPosition, pero no se recomienda.

sinceramente no se si esta bien el modo de como estoy mirando el problema                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      si alguien tiene una idea de como resolver esto, se lo agradeceria

Leoheart

 Wenas! Yo de ODE no tengo ni puñetera idea, pero desde el punto de vista fisico podria decirte unas cuantas cosillas:

Si lo que quieres es conseguir que el cuerpo se mueva con v=cte tonces:

v=cte -> a= 0 -> F=M*a F=0

Si le aplicas una fuerza de 0 Newtons el cuerpo no se movera, pero suponiendo que no hay rozamiento, si le aplicas una fuerza de 50N y luego aplicas otra de 50 pero de sentido contrario, conseguiras que se mueva con velocidad constante, ya que segun la segunda ley de newton, un cuerpo se movera con velocidad cte si las fuerzas ke actuan sobre el se anulan o son 0! Lo unico es que no se como interpretara este razonamiento el ODE , pero yo e pensao eso!

UN saludo! Espro que te sirva
oding!

Pogacha

 
Citarsi le aplicas una fuerza de 50N y luego aplicas otra de 50 pero de sentido contrario, conseguiras que se mueva con velocidad constante
Eso si se las dejas aplicadas, ... de todos modos el concepto esta bien aun que en realidad lo que debieras aplicarle es un impulso, pero creo que el ode no va con eso.
Esa pregunta ya la escuche antes... lamentablemente no vi la solución.
Hint: Pregunta en los foros de ODE.
Saludos.

vicho

 juas, creo que ya encontre la solucion, me puse a leer los faqs del ode y en la seccion 12.6 dice

Citarthe preferred method of setting body velocities during the simulation is to use joint motors, they can set body velocities to a desired value in one time step, provided that the force/torque limit is high enough

osea me toco programar el joint motors  :lol:  






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.