En mi juego cuando hago clic con el mouse en el terreno en algún lugar, me gustaría que el jugador dispare una flecha a esa posición de forma parabólica.
La flecha tiene una posición, aceleración y velocidad, todo utilizando vectores 3D. Miré la trayectoria de un artículo sobre proyectiles en wikipedia, pero no sé cómo aplicarlo en mi situación, ya que explica las matemáticas 2D. Me preguntaba si hay una solución para los vectores 3D. ¿Algún buen recurso relacionado con la situación 3D?
Respuestas:
Para ampliar el comentario de Kylotan, puede usar las fórmulas 2D en 3D. Asumiendo que Y está arriba:
calcule la posición del objetivo en el espacio X'Y'Z ', donde el eje X' es paralelo a la dirección de vuelo de la flecha, el eje Y 'está arriba y Z' es perpendicular a los ejes X 'e Y'.
Una vez que haya calculado X 'e Y', puede volver a convertir al espacio XYZ real
Ejemplo
Un arquero está en (1,0,1). Quiere disparar una flecha a (4,0,5). Consideramos que X 'es el vector unitario (0.6, 0, 0.8) ya que apunta directamente desde el origen al punto de destino. Luego consideramos que Z 'es (-0.8, 0, 0.6) porque es una perpendicular, pero como la flecha no se mueve en el eje Z', la ignoraremos. Su problema ahora es descubrir cómo disparar una flecha de (0,0) a (0,5) en el espacio X'Y '.
.. hacer cálculos 2D aquí. Tenga en cuenta que probablemente querrá funciones paramétricas de X 'e Y' en términos de t , la variable de tiempo.
Una forma de abstraer la conversión entre las dos coordenadas es usar una matriz de transformación.
Cuando volvemos a convertir de X'Y'Z ' a XYZ , esto es simplemente una transformación lineal inversa.
fuente