Mechanics
Projectile Motion
Horizontal and vertical motion are independent — gravity makes the path a parabola
Projectile motion is the motion of an object launched into the air, subject only to gravity (no thrust). The horizontal and vertical motions are independent — horizontal velocity stays constant (no horizontal force), vertical velocity changes uniformly under gravity. The trajectory is a parabola. Range, max height, and flight time follow simple formulas. Foundation of everything from cannonballs to football to spacecraft trajectories.
- Horizontal motionx = v₀·cos θ · t (constant velocity)
- Vertical motiony = v₀·sin θ · t − ½g·t²
- Trajectory shapeParabola
- Range (level ground)R = v₀²·sin(2θ) / g
- Max range angle45° (in absence of air resistance)
- Time of flightT = 2v₀·sin θ / g
Interactive visualization
Press play, or step through manually. The visualization is yours to drive — try it before reading on.
Watch the 60-second explainer
A condensed visual walkthrough — narrated, captioned, under a minute.
The setup
An object is launched at speed v₀ at angle θ above horizontal. Only gravity acts (ignoring air resistance for now).
Decompose initial velocity into components:
- Horizontal: v_x = v₀·cos θ.
- Vertical: v_y₀ = v₀·sin θ.
These two motions are independent. Solve each separately.
Equations of motion
| Quantity | Horizontal | Vertical |
|---|---|---|
| Acceleration | a_x = 0 | a_y = -g |
| Velocity | v_x = v₀·cos θ (constant) | v_y = v₀·sin θ − g·t |
| Position | x = v₀·cos θ · t | y = v₀·sin θ · t − ½g·t² |
Trajectory — a parabola
Eliminate t from the equations: from horizontal, t = x / (v₀·cos θ). Substitute into vertical:
y = x·tan θ − g·x² / (2·v₀²·cos²θ)
This is a quadratic in x — a parabola opening downward. The trajectory is always parabolic for projectile motion under uniform gravity (no drag).
Key results
Time of flight (returning to same height):
T = 2·v₀·sin θ / g
Maximum height:
H = (v₀·sin θ)² / (2g)
Range (horizontal distance to return to launch height):
R = v₀²·sin(2θ) / g
Maximum range at θ = 45°: R_max = v₀²/g.
| v₀ | θ = 30° | θ = 45° (max) | θ = 60° |
|---|---|---|---|
| 20 m/s | R = 35.3 m | R = 40.8 m | R = 35.3 m |
| 30 m/s | R = 79.5 m | R = 91.7 m | R = 79.5 m |
| 50 m/s | R = 220.8 m | R = 254.8 m | R = 220.8 m |
Notice — 30° and 60° give the same range (since sin(60°) = sin(120°)). The angles are complements summing to 90°.
Non-level launches
If launching from a height h above the landing point:
R = (v₀·cos θ / g) · [v₀·sin θ + √((v₀·sin θ)² + 2g·h)]
Optimum launch angle is less than 45° in this case.
With air resistance — the real world
Drag force ~ ½ρ·C_d·A·v² (quadratic at high speeds). This makes the trajectory non-parabolic — flatter on the way up, steeper on the way down. Range is reduced; max height is reduced; optimum angle is below 45° (~30-40°).
For real projectiles:
- Cannonballs (large, slow) — close to parabolic.
- Bullets (fast, small) — significant drag; trajectory falls faster than expected.
- Baseballs (size, drag, spin matters) — Magnus effect from spin curves trajectory.
- Tennis balls — high drag (fuzzy surface); slow easily.
- Golf balls — dimples reduce drag at high Reynolds number; backspin gives lift.
JavaScript — projectile simulation
// Analytical projectile (no drag)
function projectile(v0, angle_deg, g = 9.81) {
const angle = angle_deg * Math.PI / 180;
const vx = v0 * Math.cos(angle);
const vy0 = v0 * Math.sin(angle);
const T = 2 * vy0 / g;
const R = v0 * v0 * Math.sin(2 * angle) / g;
const H = vy0 * vy0 / (2 * g);
return { time_of_flight: T, range: R, max_height: H };
}
console.log(projectile(30, 45)); // 30 m/s at 45°: R = 91.7 m
console.log(projectile(30, 30)); // 30 m/s at 30°: R = 79.5 m
console.log(projectile(30, 60)); // 30 m/s at 60°: R = 79.5 m (same as 30°!)
// Numerical simulation with optional drag
function simulate(v0, angle_deg, mass = 1, drag_coef = 0, dt = 0.01) {
const angle = angle_deg * Math.PI / 180;
let x = 0, y = 0;
let vx = v0 * Math.cos(angle);
let vy = v0 * Math.sin(angle);
const trajectory = [{ x, y }];
while (y >= 0 || x === 0) {
// Forces: gravity + quadratic drag
const v = Math.sqrt(vx*vx + vy*vy);
const dragX = -drag_coef * v * vx;
const dragY = -drag_coef * v * vy;
const ax = dragX / mass;
const ay = -9.81 + dragY / mass;
vx += ax * dt;
vy += ay * dt;
x += vx * dt;
y += vy * dt;
if (y >= 0) trajectory.push({ x, y });
if (trajectory.length > 10000) break;
}
return trajectory;
}
// No drag: should match analytical
const traj_nodrag = simulate(30, 45, 1, 0);
console.log(`No drag range: ${traj_nodrag[traj_nodrag.length-1].x.toFixed(1)} m`); // ~91.7
// With drag
const traj_drag = simulate(30, 45, 1, 0.005);
console.log(`With drag range: ${traj_drag[traj_drag.length-1].x.toFixed(1)} m`); // less
// Find optimum angle (no drag) — should be 45°
function findOptimumAngle(v0) {
let best = 0, bestRange = 0;
for (let a = 1; a < 90; a += 0.5) {
const { range } = projectile(v0, a);
if (range > bestRange) {
bestRange = range;
best = a;
}
}
return { angle: best, range: bestRange };
}
console.log(findOptimumAngle(30)); // {angle: 45, range: 91.74}
Where projectile motion shows up
- Sports. Football kicks, basketball shots, baseball pitches/home runs, golf drives, javelin, shot put, tennis serves.
- Military and ballistics. Artillery shells, mortar rounds, missile trajectories. Real-world ballistic computation includes drag, wind, Earth's rotation.
- Cinema and animation. Realistic falling/throwing requires projectile equations. Most physics engines integrate them per frame.
- Spacecraft. Sub-orbital trajectories follow projectile motion. Reentry trajectories use modified projectile + drag analyses.
- Forensics. Bullet trajectory reconstruction, blood spatter analysis.
- Civil engineering. Water fountains, irrigation jets, fireworks design.
- Education. Classic intro physics problem demonstrating independent components, vector decomposition, and energy conservation.
Common mistakes
- Forgetting horizontal and vertical are independent. They don't affect each other. Don't try to apply gravity horizontally.
- Ignoring air resistance for fast/large objects. Bullets, baseballs, soccer balls — all need drag corrections. Pure parabolic is an idealization.
- Confusing "max range" angle with "max height" angle. Max range at 45° (no drag); max height at 90° (vertical, no horizontal). Different optimums.
- Wrong launch height handling. If launching from a cliff or a hill, range formula differs. Be careful — symmetric formulas R = v²·sin(2θ)/g assume same launch and landing heights.
- Mixing up sin and cos. Horizontal: v·cos θ. Vertical: v·sin θ. Easy mistake at 45° where they're equal, but matters at other angles.
- Forgetting that "projectile" means no thrust. Once a rocket cuts engines, it's a projectile. While engines are firing, additional forces apply.
Frequently asked questions
Why does horizontal motion stay constant?
Because the only force on a projectile (ignoring air resistance) is gravity, which acts vertically. With no horizontal force, horizontal acceleration is zero, so horizontal velocity is constant. Vertical and horizontal motions are completely independent — Galileo's insight (1638). Watch the time to fall from a tower vs the same height while moving horizontally — they're identical.
Why is 45° the maximum range angle?
Range R = v²·sin(2θ)/g. The factor sin(2θ) is maximized at 2θ = 90°, i.e., θ = 45°. At that angle, sin(2·45°) = sin(90°) = 1. For other angles, the projectile either travels too high (much vertical, less horizontal time) or too low (less air time). 45° balances height and time perfectly. Real projectiles with air resistance have an optimum slightly less than 45°.
How does air resistance change things?
Air drag reduces both range and maximum height. At low speeds (small projectiles), drag is small and the parabolic approximation works. For fast or large objects, drag becomes important. Real artillery has optimum launch angles below 45° (~30-40°) due to drag. Major League fastballs and golf balls have very different optimal launches due to spin and dimples.
Why does dropping an object straight down vs horizontally give the same fall time?
Vertical motion is independent of horizontal. A bullet fired horizontally and another dropped from the same height hit the ground at the same time — both fall at g, regardless of horizontal velocity. The fired one travels horizontally during the fall; both spend the same time in the air. Famous experiment, easy to verify.
How do you find the maximum height?
At max height, vertical velocity is zero (briefly stationary at top before falling). Use kinematic equation v² = u² − 2gh — at top, v = 0, u = v₀·sin θ. So 0 = (v₀ sin θ)² − 2gH → H = (v₀ sin θ)² / (2g). For 45° launch at 30 m/s, H = (30 · 0.707)² / 19.6 = 22.5 m.
How does projectile motion apply to satellites?
A satellite is constantly in projectile motion — it's continually falling toward Earth, but moving sideways fast enough to never hit the ground. At orbital velocity (~7.7 km/s for low Earth orbit), the curvature of Earth equals the rate of falling, so the satellite "misses" Earth forever. Newton's cannon thought experiment formalized this.
How is projectile motion used in sports?
Football kicks (43° optimum without air drag, ~38° with), basketball shots (45-55° depending on distance), golf drives (10-15° launch with backspin, very different from drag-free 45°), baseball home runs (~25-30° optimum with air drag). Sports physics uses simulations beyond simple projectile motion to account for spin, drag, lift.