Projectile Motion Calculator

Use this Projectile Motion Calculator to find time of flight (how long it is in the air), range (how far it lands), maximum height, and impact direction from a launch speed, angle, height, and gravity.

Advanced options
Model settings
Snapshot at a time
Display
Did we solve your problem today?

How to use our Projectile Motion Calculator

  1. In Solve for, pick Trajectory outputs (given speed and angle) (most common) or Find angle for a target distance (to hit a specific horizontal distance).
  2. Enter Initial speed (m/s) (use 0 or a positive number).
  3. If you are in trajectory mode, enter Launch angle (degrees). If your angle is in radians, open Advanced and change Angle unit so the calculator interprets your input correctly.
  4. Enter Initial height (m) as the starting height above the landing level (the landing level is y = 0). Use 0 if it lands at the same height it was launched.
  5. Enter Gravity (m/s^2) as a positive number (Earth is about 9.81). Optional: use Gravity preset in Advanced to fill gravity quickly.
  6. If you are in target-angle mode, enter Target horizontal distance (m) as a positive distance (how far away the landing point is sideways).
  7. Optional snapshot: in Advanced, enter Time for snapshot (s) to get position and speed at that moment. Use a time from 0 to the reported Total time of flight (T).
  8. Click Calculate.
  9. Sanity-check your results: if Initial height (m) is 0 and the angle is above 0 degrees, then Time to reach maximum height should be about half of Total time of flight (T). Also, if the angle is near 90 degrees, the Horizontal range (R) should be near 0 because there is almost no sideways speed.

Definitions

Projectile motion: 2D motion where the only acceleration is gravity (no air resistance), so sideways motion and up-down motion can be handled separately.

Initial speed (m/s): The total launch speed right at the start (before splitting into sideways and vertical parts).

Launch angle: The direction you launch, measured from the horizontal. Positive angles point upward; negative angles point downward.

Gravity (m/s^2): The downward acceleration used in the model. Enter it as a positive number (Earth standard gravity is 9.80665 m/s^2) [1].

Initial horizontal speed (v_x0): The sideways part of the launch speed. With no air resistance, this stays constant.

Initial vertical speed (v_y0): The up-down part of the launch speed. It decreases by g each second.

Total time of flight (T): How long until the projectile reaches the landing level (y = 0) after launch, if it ever does.

Horizontal range (R): How far sideways it travels by the time it reaches the landing level (y = 0).

Maximum height (y_max) above landing level: The highest y-value reached, measured relative to the landing level y = 0.

Impact direction angle (degrees): The direction of the velocity right at landing, measured above the horizontal. It is usually negative because the projectile is moving downward at impact.

Target horizontal distance (m): The sideways distance you want the projectile to land from the start; used to solve for launch angle solution(s) [1].


Common mistakes and quick fixes

Mistake: Entering an angle in radians while the calculator is set to degrees (for example 0.78 instead of 45).
Fix: Either switch Advanced Angle unit to Radians, or keep Degrees and type the angle in degrees.

Mistake: Typing gravity as a negative number because gravity points downward.
Fix: Enter Gravity (m/s^2) as a positive magnitude (like 9.80665). The equations already treat gravity as downward.

Mistake: Getting Total time of flight (T) as N/A and assuming the calculator is broken.
Fix: Your setup never reaches the landing level y = 0 (for example, you start below it with too little upward speed). Increase Initial speed (m/s) , increase the upward angle, or change Initial height (m) .

Mistake: In target-angle mode, using 0 or a negative Target horizontal distance (m) .
Fix: Use a positive distance. If you need a backward shot, that is a different sign convention and may not be supported by your class problem.

Mistake: Entering a snapshot time after the projectile has already landed and expecting a real height and speed.
Fix: Keep Time for snapshot (s) between 0 and Total time of flight (T) . For landing values, read the impact outputs instead.

Mistake: Mixing up what height is measured from.
Fix: This tool reports Maximum height (y_max) above landing level (relative to y = 0). If you want max height above the launch point, compute y_max minus Initial height (m) .


Limitations & Key Assumptions / Boundary Conditions

No air resistance: The calculator assumes the projectile does not slow down in the air. Real objects often have shorter range and a different path, especially when they are fast, light, or not very streamlined.

Constant gravity: Gravity is treated as a constant value everywhere along the path. This is a good approximation for typical classroom distances, but not for very long-range motion.

Landing level definition: Results are based on reaching the landing level y = 0. The Initial height (m) input is measured above that level, so choose your reference carefully.

2D only: Motion sideways-left/right out of the page (3D), wind, spin, and lift are not included.

Angle units and sign convention: The math depends on whether the angle is in degrees or radians (Advanced Angle unit) and on the convention that up is positive. A wrong unit setting can make every result wrong.

Feasibility limits: In target-angle mode, some distances are impossible for the chosen Initial speed (m/s), Initial height (m), and Gravity (m/s^2), so there may be 0, 1, or 2 valid angles [1].

Snapshot time boundary: Snapshot outputs are only meaningful for times between 0 and Total time of flight (T); times after landing are reported as N/A instead of continuing the equations past impact.


Methodology

We use the standard no-air-resistance projectile model: horizontal motion has constant speed, and vertical motion has constant downward acceleration g [3].

Angle conversion (if using degrees): θ (radians) = θ (degrees) * π/180

v_x0 = v0 * cos(θ)

v_y0 = v0 * sin(θ)

Vertical position (up is positive, and g is entered as a positive number):

y(t) = y0 + v_y0*t - (g*t^2)/2

Time of flight T to reach the landing level y = 0 comes from solving y(T) = 0. This leads to a discriminant check:

D = v_y0^2 + 2*g*y0

If D < 0: no real T (the projectile never reaches y = 0)

If D >= 0: T = (v_y0 + sqrt(D)) / g

Once T is known:

Range: R = v_x0 * T

Time to peak: t_peak = max(0, v_y0/g)

Maximum height: y_max = y(t_peak)

Velocity at time t (used for both snapshots and impact at t = T):

v_x(t) = v_x0

v_y(t) = v_y0 - g*t

speed(t) = sqrt(v_x(t)^2 + v_y(t)^2)

direction(t) = atan2(v_y(t), v_x(t))

Target-angle mode solves for launch angle(s) that land at x = target_range and y = 0. Using u = tan(θ), the equation becomes a quadratic that can give 0, 1, or 2 real solutions [1].

A = g*x^2/(2*v0^2)

Solve for u: A*u^2 - x*u + (A - y0) = 0, where x = target_range

Then θ = atan(u) (convert to degrees for display)

Mini-example (trajectory mode): let v0 = 50 m/s, launch angle = 45 degrees, y0 = 0 m, and g = 9.80665 m/s^2 (Earth standard gravity) [1]. Then v_x0 = 35.36 m/s, v_y0 = 35.36 m/s, T = 7.208 s, y_max = 63.71 m, and R = 254.84 m (rounded).


Sources