Use this trajectory calculator to find projectile motion results like flight time, range, maximum height, position at a chosen time, or launch angles to hit a target.
Advanced options
How to use our Trajectory Calculator
- Choose Solve for: use Trajectory from speed and angle for the usual projectile calculation, Hit a target to solve for launch angle, or Position at time to find where the projectile is at a chosen moment.
- Enter Initial speed v0 (m/s), Starting height y0 (m), and Gravity g (m/s^2). On Earth, a common value for gravity is 9.80665.
- If you are using the forward mode, enter Launch angle (degrees). Angles above 0 point upward, 0 is horizontal, and negative angles point downward.
- Open Advanced options if needed. Use Landing height (m) when the projectile lands at a different level, Target distance x (m) and Target height y (m) in target mode, or Time t (s) in position mode.
- If you want cleaner output, choose a Number display format. Use Table step (s) only if you want a time table, and keep it large enough to avoid too many rows.
- Click Calculate. Read the main results that match your mode, such as Time of flight (s), Horizontal range at landing (m), Maximum height (m), or Launch angle solution(s) to hit target (degrees).
- Do a quick sanity check: Time to maximum height (s) should not be negative, Maximum height (m) should be at least your starting height when launched upward, and the lower target-hit angle should usually have the shorter Time(s) to reach target (s).
- If you see Notes (if any), read them carefully. They explain edge cases like an unreachable target, a landing height the projectile never reaches, or a time that is after landing.
Definitions
Solve for: The mode that decides what the calculator finds: a full trajectory, launch angle(s) to hit a target, or the projectile's position at a chosen time.
Initial speed v0 (m/s): The launch speed right after release. The calculator splits it into horizontal and vertical parts [1].
Launch angle (degrees): The angle above the horizontal. Positive angles point upward, 0 degrees is flat, and negative angles point downward.
Starting height y0 (m): The launch height measured from your chosen reference level.
Gravity g (m/s^2): The downward acceleration used in the model. Projectile motion here assumes gravity is the only acceleration during flight [2].
Landing height (m): The y-level where you want the calculator to treat the projectile as having landed.
Time of flight (s): Total time from launch until the projectile reaches the chosen landing height.
Horizontal range at landing (m): How far the projectile travels sideways by landing.
Maximum height (m): The highest y-value reached during the motion.
Launch angle solution(s) to hit target (degrees): The possible angle values that let the projectile pass through the target point. Some targets have two angles, one angle, or no real angle.
Notes (if any): Short messages that explain edge cases, such as an unreachable target or a time that happens after landing.
Common mistakes and quick fixes
Mistake: Entering 0 or a negative number for Initial speed v0 (m/s) and expecting a normal trajectory.
Fix: Use a value greater than 0 for Initial speed v0 (m/s) ; otherwise the calculation is blocked.
Mistake: Typing 9.81 as a percent-style value or leaving Gravity g (m/s^2) blank.
Fix: Enter gravity as a plain positive number in m/s^2 , such as 9.80665 for Earth, in Gravity g (m/s^2) .
Mistake: Using Hit a target mode without giving a positive Target distance x (m) .
Fix: In target mode, enter a value greater than 0 for Target distance x (m) so the calculator can solve for forward launch angles.
Mistake: Forgetting that Landing height (m) changes both Time of flight (s) and Horizontal range at landing (m) .
Fix: Set Landing height (m) to the actual level where you want the projectile to count as landed; use 0 only when that matches your situation.
Mistake: Entering a negative Time t (s) in Position at time mode.
Fix: Use 0 or a positive value for Time t (s) . Negative time is not valid in this calculator.
Mistake: Choosing a tiny Table step (s) and getting too many rows or a warning in Notes (if any) .
Fix: Increase Table step (s) to a larger value, such as 0.1 s or 0.25 s, so the table stays manageable.
Limitations & Key Assumptions / Boundary Conditions
This calculator uses the standard no-air-resistance projectile model for its main results. That means horizontal speed stays constant and only gravity changes the vertical motion.
Results depend on your reference heights. If Starting height y0 (m), Landing height (m), and Target height y (m) are not measured from the same zero level, the outputs will be misleading.
The target-solving mode only works for forward targets with Target distance x (m) greater than 0. If the math gives no real angle, the calculator correctly shows that the target is unreachable for that speed and height setup.
Very steep angles near 90 degrees can make horizontal motion extremely small, so times and ranges can become very sensitive to small input changes.
If you use Position at time t: x(t), y(t) with a time after landing, the calculator can still show the math position, but that point may not match the physical flight you meant to study.
The optional table is limited to a maximum number of rows. If Table step (s) is too small, you may need a larger step size to keep the output practical.
Methodology
Core model
This calculator uses the standard projectile-motion setup: horizontal and vertical motion are handled separately, with constant downward acceleration from gravity and no air resistance [1][2].
θ (launch angle in radians) = angle in degrees * π / 180
v_x0 = v0 * cos(θ)
v_y0 = v0 * sin(θ)
x(t) = v_x0 * t
y(t) = y0 + v_y0 * t - 0.5 * g * t^2
Flight, height, and landing
The time to the top is when vertical velocity becomes zero. If the projectile starts downward, the top is treated as happening at t = 0.
t_top = max(0, v_y0 / g)
y_max = y0 + v_y0^2 / (2g) if v_y0 > 0, otherwise y_max = y0
To find landing, the calculator solves the height equation using your chosen Landing height (m). It keeps the largest real solution with t greater than or equal to 0.
y0 + v_y0 * t - 0.5 * g * t^2 = landing_y
D = v_y0^2 + 2g(y0 - landing_y)
If D is negative, there is no real landing time for that landing height, so Time of flight (s) and Horizontal range at landing (m) are shown as N/A.
range_x = v_x0 * T
v_y(T) = v_y0 - gT
|v(T)| = sqrt(v_x0^2 + v_y(T)^2)
Hit-a-target mode
For target mode, the calculator uses the target point and launch speed to solve for the possible angle values. It rewrites the path equation in terms of u = tan(θ), solves the quadratic, converts valid solutions back to angles, and rejects any case that would need infinite or negative time.
dx = target_x
dy = target_y - y0
dy = dx * u - (g * dx^2 / (2v0^2)) * (1 + u^2), where u = tan(θ)
t = dx / (v0 * cos(θ))
If the quadratic has no real solution, the target is marked unreachable with the given speed and heights.
Mini example
Suppose Initial speed v0 (m/s) = 20, Launch angle (degrees) = 45, Starting height y0 (m) = 0, Landing height (m) = 0, and Gravity g (m/s^2) = 9.80665. Then the initial horizontal and vertical speeds are both about 14.14 m/s. The flight time is about 2.88 s, the range is about 40.8 m, and the maximum height is about 10.2 m, which matches the standard no-drag model.
Assumptions used in the math
This method assumes constant gravity, flat coordinates, no spin effects, and no air drag. Real projectiles can differ because of wind, drag, changing height references, or measurement errors [3].