Watch a basketball arc toward the hoop, a fountain jet curve back to the pool, or a long-jumper leave the board, and you are watching the same piece of physics. The path looks complicated — a smooth, leaning curve — but it is built from two motions that have nothing to do with each other. Horizontally, the object coasts at constant speed. Vertically, it is in free fall, slowing on the way up and speeding up on the way down. Gravity touches only the vertical part.
That separation is the single most useful idea in introductory mechanics. Once you accept that the horizontal and vertical motions can be solved independently and then recombined, projectile problems stop being puzzles and become a short, reliable recipe. This article walks through that recipe, works a full numerical example, and points out where intuition tends to mislead.
Why this calculation matters
Projectile motion is the first place most students meet the idea of decomposing a vector problem into components — and that habit carries straight into orbital mechanics, structural loads, fluid velocity fields, and beyond. Master it here and the harder subjects come easier.
It is also genuinely practical. Sports engineers optimise launch angles for javelins and golf shots. Civil engineers size the throw of fountains and the reach of water jets from fire monitors. Game developers code ballistic arcs for anything that gets thrown. Even when real systems add air resistance, the drag-free solution is the baseline everyone starts from: it tells you the maximum possible range, the rough time of flight, and whether your assumptions are sane before any numerical model runs.
The core formula
The whole subject rests on one decision: handle the two directions separately. Take a launch speed v0 at an angle theta above the horizontal. Split it once at the start:
horizontal velocity: vx = v0 * cos(theta) (constant)
vertical velocity: vy = v0 * sin(theta) (changes under gravity)
With drag neglected and the ground flat, the position over time is:
x(t) = v0*cos(theta) * t
y(t) = v0*sin(theta) * t - (1/2)*g*t^2
From these, three results cover most questions. The time of flight — how long until the projectile returns to launch height — comes from setting y back to zero:
t = 2*v0*sin(theta) / g
The maximum height, reached when the vertical velocity hits zero:
H = v0^2 * sin^2(theta) / (2*g)
And the range, the horizontal distance covered in that flight time:
R = v0^2 * sin(2*theta) / g
The range formula carries a famous result. Because sin(2*theta) is largest when 2*theta equals 90 degrees, the range is greatest at theta = 45 degrees — for a launch and landing at the same height, with no air resistance. It also explains why complementary angles, such as 30 and 60 degrees, give the same range: sin(2*theta) returns the same value for both.
A worked example
Launch a projectile at v0 = 30 m/s at an angle theta = 40 degrees above the horizontal, over flat ground, with g = 9.81 m/s^2 and drag neglected.
Step 1 — range. Use R = v0^2 * sin(2*theta) / g. Here 2*theta = 80 degrees, and sin(80 deg) = 0.985:
R = 30^2 * sin(80 deg) / 9.81
R = 900 * 0.985 / 9.81
R = 90.3 m
Step 2 — maximum height. Use H = v0^2 * sin^2(theta) / (2*g). With sin(40 deg) = 0.643, sin^2(40 deg) = 0.413:
H = 900 * 0.413 / 19.62
H = 19.0 m
Step 3 — time of flight. Use t = 2*v0*sin(theta) / g:
t = 2 * 30 * 0.643 / 9.81
t = 38.6 / 9.81
t = 3.93 s
So this shot travels 90.3 m, peaks at 19.0 m, and stays airborne for 3.93 s. Notice the proportions: the projectile climbs only 19 m but covers 90 m across the ground — the flight is far flatter and longer than it is tall. And because 40 degrees is just short of the optimum, the range here is close to but not quite the best this launch speed can do. Fired at 45 degrees, the same 30 m/s would reach a range of 900/9.81 = 91.7 m, only about 1.5 % farther — the range curve is gentle near its peak.
Common mistakes
Letting gravity touch the horizontal motion. Gravity acts straight down. The horizontal velocity v0*cos(theta) never changes in the drag-free model. A surprising number of errors come from accidentally decelerating the horizontal component.
Assuming the range formula always applies. R = v0^2*sin(2*theta)/g assumes launch and landing at the same height. Throw from a cliff or into a valley and you must go back to the full y(t) equation and solve for when y reaches the actual landing height.
Forgetting that time of flight depends only on the vertical part. How long an object stays in the air is set entirely by vy = v0*sin(theta) and g. The horizontal speed does not extend or shorten the flight — it only changes how far the object gets in that time.
Mixing up height and range optimisation. Range is maximised at 45 degrees, but height keeps increasing all the way to a 90-degree launch. The angle that throws something farthest is not the angle that throws it highest.
Trusting the drag-free answer for fast or light objects. For a thrown ball at modest speed the no-drag model is a fair guide. For a bullet, an arrow, or anything fast and light, air resistance cuts the real range well below the ideal formula. Treat the drag-free number as an upper bound.
Try the interactive NovaSolver calculator
The formulas are short, but seeing the arc respond to your inputs builds intuition far faster than algebra alone. The Projectile Motion Simulator on NovaSolver lets you set the initial velocity, launch angle, launch height, and gravity, then draws the trajectory in real time and reports the range, maximum height, flight time, and landing speed. You can also switch gravity to Moon, Mars, or Jupiter values and watch the same launch reach wildly different distances.
Related calculators
- Projectile Motion with Drag calculator — add air resistance to see how far the real path falls short of the ideal arc.
- 3D Projectile Motion calculator — extend the problem into three dimensions, with crosswind and sideways aim.
- Advanced Projectile calculator — explore launch and landing at different heights and other non-textbook cases.
You can find more in the physics tools hub.
Closing note
Projectile motion looks like one curved problem and is really two straight-line ones glued together. Split the launch velocity into horizontal and vertical components, treat the horizontal motion as constant and the vertical as free fall, then recombine. From that you get range, height, and time of flight in three short formulas — and the clean result that 45 degrees gives the longest throw when launch and landing share a height. Keep the components honestly separate and the rest is arithmetic.









