The Physics

Understanding projectile motion and drag.

Ideal Projectile Motion

Fundamentally, projectile motion studies the motion of objects being influenced only by the force of gravity, and can be governed by the three kinematic equations:

\( v = v_i + at \)
\( \Delta x = v_i t + \tfrac{1}{2}at^2 \)
\( v^2 = v_i^2 + 2a\Delta x \)

Projectile motion defines a constant horizontal velocity component and a vertical velocity component accelerating at the linear rate of ambient gravity \(-g\), independent of mass:

Vertical
\( F_{net,y} = -F_g = -mg \)
\( a_y = -g \)
Horizontal
\( F_{net,x} = 0 \)
\( a_x = 0 \)

The Drag Force

However, in real conditions these relationships only approximate the motion, because of the nonlinear force of drag. They remain a good approximation for dense, slow objects, where drag is small compared with gravity:

\( F_d = \tfrac{1}{2} \rho C_d A v^2 \)

This means projectiles stray from their parabolic trajectories, especially when experiencing higher drag forces due to larger cross-sectional areas, higher drag coefficients, faster velocities, or denser fluids.

Motion with Drag

When drag is introduced, the equations of motion become more complex:

Vertical
\( F_{net,y} = -\left(mg + \tfrac{1}{2}\rho C_d A v \cdot v_y\right) \)
\( a_y = -\dfrac{mg + \tfrac{1}{2}\rho C_d A v \cdot v_y}{m} \)
Horizontal
\( F_{net,x} = -\tfrac{1}{2}\rho C_d A v \cdot v_x \)
\( a_x = -\dfrac{\tfrac{1}{2}\rho C_d A v \cdot v_x}{m} \)

Note that mass no longer cancels, due to the added drag force term. Acceleration is also now variable, as it depends on the instantaneous velocity.

How the PMADS Works

This is the fundamental function of the PMADS - it models velocity, position, and time values to compute instantaneous forces acting on the projectile and its acceleration, to correctly map out its trajectory. Using this simulation, you can graphically understand how drag influences projectile motion. Use the density presets to see how denser fluids cause higher drag, and how the vacuum preset shows ideal projectile motion.

Numerical Method

The PMADS integrates the equations of motion with the semi-implicit (symplectic) Euler method at a fixed time step of \(\Delta t = 1\) ms. Each step first updates the velocity from the current forces, then updates the position using the new velocity:

\( \vec{v}_{n+1} = \vec{v}_n + \vec{a}(\vec{v}_n)\,\Delta t \)
\( \vec{r}_{n+1} = \vec{r}_n + \vec{v}_{n+1}\,\Delta t \)

The time step does not adapt. The flight ends at the first step where the height drops below zero, and the landing point is not interpolated to exactly \(y = 0\). This adds an error of at most one time step (1 ms) to the flight time.

To check convergence, we reran the simulation with smaller time steps. Reducing \(\Delta t\) from 1 ms to 0.1 ms changed distance, peak height, flight time, and final speed by less than 0.05% for a soccer ball, a baseball, and a golf ball. In a vacuum, the simulated range matches the analytic solution to within 0.04%.

Model Assumptions and Limits

The PMADS treats the projectile as a point mass acted on by gravity and quadratic drag with a constant drag coefficient. This is a good model for balls moving through air. It does not include:

When inferring a launch angle from a distance, there are usually two valid angles: a low trajectory and a high one. The solver returns the lower angle and does not report the second solution.

The simulation has been compared with a video-tracked foam-ball kick; see the accuracy results on the homepage.