Calcular la trayectoria de un objeto es más fácil de lo que pensamos, muy útil en muchos campos como la física, la ingeniería y la programación. A continuación te muestro un tutorial paso a paso para hacerlo utilizando ecuaciones matemáticas, acompañado de ejemplos en JavaScript, al final tendrás una función "Genérica" que puedes usar en tus proyectos. 

1. Conceptos básicos

Antes de comenzar, es importante entender algunos conceptos básicos como velocidad, aceleración y la ecuación de movimiento. La fórmula general para el movimiento uniformemente acelerado es:

VELOCIDAD = [VELOCIDAD INICIAL] + [ACELERACION] x [TIEMPO]

Esta es la fórmula base de velocidad que nos permite entender este tutorial.

2. Calcular la posición usando JavaScript

Vamos a crear una función en JavaScript que calcule la posición de un objeto en un instante de tiempo dado.

function calcularPosicion(velocidadInicial, aceleracion, tiempo) {
  return velocidadInicial * tiempo + 0.5 * aceleracion * tiempo * tiempo;
}

const velocidadInicial = 10; // m/s
const aceleracion = 2; // m/s^2
const tiempo = 5; // s
const posicion = calcularPosicion(velocidadInicial, aceleracion, tiempo);
console.log('La posición del objeto en el tiempo', tiempo, 's es', posicion, 'm');

Este código definirá una función `calcularPosicion` que toma la velocidad inicial, aceleración, y tiempo como parámetros y retorna la posición del objeto usando la ecuación mencionada anteriormente.

Espera ✋ Algo no me cuadra con la formula inicial. 

La fórmula VELOCIDAD = VELOCIDAD INICIAL + ACELERACIÓN × TIEMPO es útil para calcular la velocidad de un objeto en movimiento rectilíneo uniformemente acelerado (MRUA), pero no nos da directamente la posición del objeto. Aquí te explico por qué necesitamos más que solo esa fórmula:

Velocidad vs. Posición:

La fórmula nos dice cómo cambia la velocidad del objeto a medida que pasa el tiempo. Pero la velocidad solo nos dice la rapidez con la que el objeto se está moviendo, no nos dice dónde está exactamente.

Calculando la Posición:

Para conocer la posición del objeto, necesitamos integrar la velocidad con respecto al tiempo. La integración de la velocidad nos da la posición del objeto en función del tiempo. La integración es como sumar todas las velocidades pequeñas a lo largo del tiempo para obtener la distancia recorrida.

Parte adicional (0.5× ACELERACIÓN × TIEMPO ^ 2)

Esta parte adicional en la fórmula POSICIÓN = VELOCIDAD INICIAL x TIEMPO + 0.5 x ACELERACIÓN x TIEMPO ^ 2  representa la distancia extra que el objeto recorre debido a la aceleración constante. Es el resultado de integrar la aceleración respecto al tiempo para obtener la posición.

0.5 x ACELERACIÓN x TIEMPO ^ 2 se hace para integrar la aceleración respecto al tiempo. Multiplicamos la mitad de la aceleración por el tiempo al cuadrado para obtener la distancia adicional que el objeto ha recorrido debido a su aceleración constante.

Espero que se entienda un poco la explicación 😄

3. Ejemplo práctico: Lanzamiento de un proyectil

Ahora si pasamos a la programación, esto es lo que me gusta en lo personal 👨🏼‍💻

Imaginemos que queremos calcular la trayectoria de un proyectil que es lanzado con una velocidad inicial en un ángulo específico. La ecuación para la posición en el eje X (horizontal) y el eje Y (vertical) son ligeramente diferentes.

  • Posición en X: x = ut * cos(θ)
  • Posición en Y: y = ut * sin(θ) - (1/2)gt^2

Donde 'u' es la velocidad inicial, 'θ' es el ángulo de lanzamiento, y 'g' es la aceleración debida a la gravedad (9.81 m/s^2), ahh y 't' es el tiempo (No lo olvides!)

function calcularTrayectoria(velocidadInicial, angulo, tiempo) {
  const g = 9.81; // m/s^2
  const anguloRad = angulo * (Math.PI / 180); // Convertir a radianes
  const x = velocidadInicial * tiempo * Math.cos(anguloRad);
  const y = velocidadInicial * tiempo * Math.sin(anguloRad) - 0.5 * g * tiempo * tiempo;
  return { x: x, y: y };
}

const velocidadInicial = 20; // m/s
const angulo = 45; // grados
const tiempo = 2; // s
const posicion = calcularTrayectoria(velocidadInicial, angulo, tiempo);
console.log('La posición del proyectil en el tiempo', tiempo, 's es (', posicion.x, ',', posicion.y, ')');

Te comparto el código en konsole.dev para que puedas "jugar" con el

El código define una función `calcularTrayectoria` que calcula la posición en X y Y de un proyectil lanzado a una cierta velocidad inicial y ángulo. Finalmente, se imprime la posición en el tiempo especificado.

Ejemplo funcional de como usar la función 

En el anterior ejemplo usamos la función calcularTrayectoria con unas pequeñas modificaciones y la integramos en el código HTML  para crear una demostración dinamica de como seria la trayectoria de un objeto, por defecto dejamos la gravedad de la tierra pero esta puede ser cambiada, ademas debes tener en cuenta que para este ejemplo dejamos el ángulo de salida el 45 grados, este lo puedes modificar según tus necesidades. Si revisas detenidamente el código ves que se hace un bucle para poder dibujar cada punto en un determinado tiempo transcurrido.

Espero que sea de utilidad este tutorial y ayuda a ampliar tus conocimientos y lógica de programación. 

Como últimas palabras solo quiero decir que yo no soy matemático ni me conozco estas formulas de memoria, solo uso mi conocimiento en programación y las bases matemáticas que todos adquirimos en el transcurso de la vida educativa y uno los conceptos con ayuda de libros y documentación para dar solución a un problema puntual.