Obtener velocidad angular de un vehнculo
#1

Hola a todos, desde que saliу la versiуn 0.3a de SA-MP hay funciones para obtener la velocidad de los vehнculos pero no habнa hasta la versiуn 0.3b una para darle velocidad angular al mismo (lo cual es muy ъtil). Siempre quise saber como obtener la velocidad angular del vehнculo, es decir, tres vectores: X, Y, Z. Funciona asн:

Si el vehнculo va hacia adelante, la Y serб positiva.
Si el vehнculo va hacia atrбs, la Y serб negativa.

Si el vehнculo va hacia la derecha, la X serб postiva.
Si el vehнculo va hacia la izquierda, la X serб negativa.

Si el vehнculo va hacia arriba (hacia su mismo techo), la Y serб positiva.
Si el vehнculo va hacia abajo (hacia su suelo o sus neumбticos), la Y serб negativa.

Igualmente si el vehнculo va hacia adelante y a la misma vez hacia la izquierda, la Y darб un valor positivo, la X uno negativo y la Z cero.

Le pedн ayuda a un miembro del staff de SA-MP y su respuesta fuй esta:

Quote:
Originally Posted by JernejL
You need to take velocity and unrotate it with the quternion's matrix that my code creates, this can get you started on what you need:

http://www.gamedev.net/community/for...94&whichpage=1

"By "unrotating" you're basically multiplying the vector by the inverse of the matrix."

http://mathworld.wolfram.com/MatrixInverse.html

This is helpful too:

http://www.******.com/codesearch/p?h...a=N&cd=1&ct=rc
Sin embargo, mis conocimientos en matemбticas no son buenos y no tengo idea de que hacer con su cуdigo (que de por sн es muy complicado e inentendible para mi)...

їAlguien tiene alguna idea de como obtenerla?
Reply
#2

https://sampwiki.blast.hk/wiki/GetVehicleVelocity
https://sampwiki.blast.hk/wiki/SetVehicleAngularVelocity

Seguramente ya lo habrбs visto, pero por si acaso.
Creo que es eso lo que quieres, si no, no sй a que te refieres.
Reply
#3

їPrimero la coordenada Z no ha de ser la que de la altura?

En un entorno bidimensional es asн

Y
Y
Y
Y
Y
Y
Y
Y
XXXXXXXXXXXXXXXXXXX

Por lo cual serб la Z ya que en el entorno tridimensional es la profundidad

Lo segundo velocidad angular? prueba con esto, esta hecho la verdad un poco a ojo :S no se si irб bien


new vehicleid,Float:velocidadx,Float:velocidady,Float: velocidadz,Float:velocidad,string[256];
vehicleid = GetPlayerVehicleID(playerid);
GetVehicleVelocity(vehicleid,velocidadx,velocidady ,speed_z);
velocidad = floatsqroot(((velocidady*velocidady)+velocidadx*ve locidadx))+(velocidadz*velocidadz))*137;

velocidad -> en float
floatround(final_speed,velocidad) -> en int


Un saludo
Reply
#4

Quote:
Originally Posted by Cesar_Biker
Посмотреть сообщение
https://sampwiki.blast.hk/wiki/GetVehicleVelocity
https://sampwiki.blast.hk/wiki/SetVehicleAngularVelocity
Seguramente ya lo habrбs visto, pero por si acaso.
Creo que es eso lo que quieres, si no, no sй a que te refieres.
No, no es eso, creo que me explique bien, їverdad? No es la velocidad normal... En los ejemplos puedes ver que no depende hacia donde va el vehiculo sino hacia que parte (tomando el mismo vehiculo como plano de referencia) va (hacia: atras, adelante, a los lados, para su mismo techo, para su mismo suelo)...
Reply
#5

Creo que no es posible obtener la velocidad angular. Lo ъnico que se me ocurre serнa usar una variable que guarde la ъltima rotaciуn del vehнculo y la compare con la actual, y asн con algunos cуdigos obtener la "velocidad", como se hacнa antes con los viejos velocimetros que no tenian GetVehicleVelocity.
Reply
#6

Quote:
Originally Posted by MrDeath
Посмотреть сообщение
Creo que no es posible obtener la velocidad angular. Lo ъnico que se me ocurre serнa usar una variable que guarde la ъltima rotaciуn del vehнculo y la compare con la actual, y asн con algunos cуdigos obtener la "velocidad", como se hacнa antes con los viejos velocimetros que no tenian GetVehicleVelocity.
Si, me acabo de dar cuenta que es imposible porque no hay ninguna funciуn...

Gracias a todos.
Reply
#7

Pero podrнas intentar hacer algo como lo que te dije :P
Reply
#8

Quote:
Originally Posted by MrDeath
Посмотреть сообщение
Pero podrнas intentar hacer algo como lo que te dije :P
Me suicido primero, odio la trigonometrнa...
Reply
#9

Con trigonometrнa tampoco se va a poder obtener la velocidad angular. La velocidad angular es la velocidad a la que rota el vehнculo en alguno de los ejes (y son ejes con respecto al mundo, no al coche). Es mбs, GetVehicleVelocity no tiene sentido en ser usado para obtener la velocidad angular, ya que un vehнculo puede no estar moviйndose pero sн estar girando como loco sobre sн mismo.
Reply
#10

Igual, quizб no me expliquй bien, habrнa que probar.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)