HomePhysics & MechanicsProjectile Motion — Range, Angle & Air Resistance

🎯 Projectile Motion — Range, Angle & Air Resistance

Launch a projectile and explore range, trajectory, and maximum height. Compare ideal parabolic motion with realistic air resistance. Discover why 45° maximises range in vacuum but not in air.

Physics & Mechanics3DEasy60 FPS💨 Air & Wind
projectile-range ↗ Open standalone

Physics & Equations

Without drag: x = v₀cosθ·t, y = v₀sinθ·t − ½gt². Range R = v₀²sin(2θ)/g, maximised at θ = 45°. With drag: F_d = −½ρv²C_d·A, giving acceleration a = g + F_d/m. Numerical RK4 integration handles the drag term. With air resistance, the optimal angle drops below 45° (≈38° for dense objects in air).

Air Resistance Effects

Drag force is quadratic in velocity: F_d ∝ v². This means fast-moving objects experience much stronger drag than slow ones. A cannonball and a tennis ball launched at the same angle and speed will land very differently — the tennis ball experiences far more drag relative to its weight (lower ballistic coefficient m/C_d·A).

Optimal Launch Angle

In vacuum, 45° always maximises range. In air, the optimum shifts toward lower angles (35–42°) because the longer arc at higher angles spends more time fighting drag. Shot put athletes use ≈42° for this reason. Arrow archers often use flatter angles (20–30°) because arrows have extremely low drag.

About this simulation

This simulation launches a point projectile and compares two trajectories side by side. The blue dashed curve is the closed-form vacuum parabola, x = v0cosθ·t and y = v0sinθ·t − ½gt², giving range R = v0²sin(2θ)/g. The red curve is produced by explicit Euler integration in fixed 0.05 s steps, adding a quadratic drag force F_d = ½ρC_dAv² (air density ρ = 1.225 kg/m³, a fixed cross-section A = 0.045 m²) that decelerates the projectile in proportion to its speed squared, then divides by mass to get the drag deceleration. Range, peak height and flight time are read directly off the drag-integrated path.

What it shows

Two trajectories launched at the same angle, speed and mass: the analytic drag-free parabola (dashed blue) and a numerically integrated path (red) that includes quadratic air drag, so you can see exactly how far short of the ideal range a real projectile falls.

How to use it

Drag the Angle, Speed, Drag Coefficient and Mass sliders, or click a preset (basketball, arrow, cannonball, shot put) to load realistic values, then compare the Max Range, Max Height and Time of Flight readouts against the Ideal Range.

Did you know

The model keeps frontal area fixed at 0.045 m² for every preset — only mass and drag coefficient change — so switching from a light arrow to a heavy cannonball mostly changes how much the same drag force decelerates it, not the size of the object being modelled.

Frequently Asked Questions

Why doesn't the red drag path match the blue ideal path, even at a low drag coefficient?

The blue curve is the exact closed-form vacuum solution (x = v0cosθ·t, y = v0sinθ·t − ½gt²) and never includes air resistance at all, while the red curve always adds the quadratic drag force F_d = ½ρC_dAv². Because the simulation keeps the frontal area fixed at A = 0.045 m² for every preset, some drag remains at any nonzero C_d, so the two curves only truly coincide when the Drag Coefficient slider is set to exactly 0.

What numerical method integrates the drag trajectory?

The drag path is produced by explicit (forward) Euler integration with a fixed time step of 0.05 seconds: at each step the drag acceleration is computed from the current velocity, then velocity and position are updated in turn. It is a simple first-order method, not a higher-order scheme like RK4, chosen here for speed and clarity over strict long-term accuracy.

Why does the optimal launch angle drop below 45° once drag is enabled?

A higher launch angle sends the projectile higher and keeps it airborne longer, and since drag force is proportional to velocity squared, more time in flight means more cumulative horizontal speed lost to drag. Lowering the angle shortens the flight and reduces this loss, which is why the drag-integrated range in this simulation peaks somewhere around 35–42° instead of the vacuum optimum of 45°.

Why does changing the mass slider affect the range if drag force doesn't depend on mass?

Drag force F_d = ½ρC_dAv² indeed has no mass term, but Newton's second law converts that force into an acceleration of F_d/mass, so a heavier object experiences less deceleration for the same drag force. This is why the Cannonball preset (mass 6 kg) tracks close to the ideal parabola, while the Arrow preset (mass 0.02 kg) relies on its very low drag coefficient (0.05) rather than mass to stay close to the ideal path.

Why do the two moving markers on the canvas sometimes stop and restart at different points?

Each marker advances through its own precomputed array of positions (idealPath or dragPath) using the same shared animation clock. Since the drag path usually has a shorter time of flight than the ideal path, its marker reaches the ground and freezes first while the ideal marker keeps moving; once both have landed, the simulation pauses briefly at the longer of the two flight times before both markers reset to the launcher together.

⚙ Under the hood

Interactive projectile motion simulator: vary launch angle, initial speed and drag coefficient to maximise range. Trace parabolic and drag-modified trajectories side by side.

projectile motionparabolaair resistancerangelaunch angle

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)