Orbital flight path angle calculator
The orbital flight path angle calculator finds the angle between an object's velocity vector and its local horizontal direction at a specified point on a conic orbit.
Run — free
Enter the dimensionless eccentricity and the true anomaly in degrees, and the calculator returns the signed flight path angle in degrees. Positive values indicate outward motion after periapsis, negative values indicate inward motion before periapsis, and zero describes locally horizontal motion, including every point of a circular orbit.
What the flight path angle means
The orbital flight path angle, commonly written as gamma, describes the direction of motion relative to the local horizontal plane. It is not the same as inclination, which describes how an orbital plane is tilted relative to a reference plane. Instead, flight path angle is measured inside the orbital plane at one particular location. A value of zero means the velocity is exactly tangent to the local circular direction. A positive value means the spacecraft or body has an outward radial velocity component and is moving away from the focus. A negative value means it has an inward radial component and is moving toward the focus. On an elliptical orbit, the angle is zero at periapsis and apoapsis, positive while traveling from periapsis toward apoapsis, and negative on the returning half. The result is especially useful when comparing a state vector with orbital elements, checking a trajectory solution, or estimating the pointing direction associated with a transfer orbit. Because the calculator reports a signed angle, the position within the orbit matters as much as the orbit's shape.
How eccentricity and true anomaly determine the result
The calculation uses the standard conic-orbit relationship gamma equals atan2 of e times sin nu and one plus e times cos nu. Here, e is eccentricity and nu is true anomaly. The two-argument atan2 form is important because it preserves the correct quadrant and sign instead of losing directional information through an ordinary arctangent. Eccentricity describes the shape of the conic: zero is circular, values between zero and one are elliptical, one is parabolic, and values above one are hyperbolic. True anomaly locates the object angularly from periapsis, measured at the occupied focus. This calculator accepts true anomaly in degrees and converts it internally to radians for the trigonometric operations, then converts the resulting angle back to degrees. For a circular orbit, the numerator is always zero and the answer is zero regardless of true anomaly. As eccentricity grows, the radial component can become more prominent and the absolute flight path angle generally becomes larger away from an apsis. Negative eccentricity is rejected because it is outside the conventional orbital-element definition used by this formula.
Entering values and interpreting the signed angle
Provide eccentricity as a finite dimensionless number greater than or equal to zero, then provide true anomaly as a finite angle in degrees. Angles do not need to be restricted to a single revolution: periodic trigonometric functions make 420 degrees equivalent to 60 degrees, for example. The returned field is the flight path angle in degrees, rounded only at the far end of the calculation to keep the output stable and useful in automated tests. When interpreting the sign, assume the usual convention that true anomaly increases in the direction of orbital motion from periapsis. Under that convention, anomalies on the outbound portion normally produce positive angles, while corresponding inbound positions produce negative angles. The formula describes ideal two-body conic geometry. It does not account for atmospheric lift or drag, powered thrust, third-body perturbations, nonspherical gravity, or a flight-control definition tied to a rotating atmosphere. For mission design, use this result as an analytic check or a component of a larger calculation, and keep the eccentricity and anomaly sourced from the same osculating orbit and epoch. API requests are priced at $0.002.
What you can do with it
Check an orbital state conversion
Compare the angle implied by eccentricity and true anomaly with the direction obtained from position and velocity vectors.
Inspect transfer-orbit geometry
Determine whether motion is locally inward or outward and quantify its direction relative to the local horizontal.
Build an astrodynamics worksheet
Add a deterministic signed-angle calculation to a study tool, mission-analysis script, or classroom exercise.
FAQ
What formula does the calculator use?
It uses gamma = atan2(e sin nu, 1 + e cos nu), where e is eccentricity and nu is true anomaly.
Is true anomaly entered in degrees or radians?
Enter true anomaly in degrees. The calculator performs the radian conversion internally and returns degrees.
What does a negative flight path angle mean?
It means the velocity has an inward radial component, so the object is moving toward the occupied focus under the usual anomaly convention.
What is the result for a circular orbit?
For eccentricity zero, the flight path angle is zero because velocity is tangent to the local horizontal everywhere on the ideal circular orbit.
Why is negative eccentricity rejected?
Conventional conic orbital elements define eccentricity as a nonnegative magnitude, so a negative value is not valid input for this relationship.
How much does an API calculation cost?
Each API request costs $0.002; the same deterministic calculation is available free in the browser.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/astro/flight-path-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"eccentricity":0.5,"true_anomaly_degrees":60}'const res = await fetch("https://api.kit.forhosting.com/astro/flight-path-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"eccentricity": 0.5,
"true_anomaly_degrees": 60
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/flight-path-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"eccentricity": 0.5,
"true_anomaly_degrees": 60
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/flight-path-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"eccentricity":0.5,"true_anomaly_degrees":60}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"eccentricity":0.5,"true_anomaly_degrees":60}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/flight-path-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"eccentricity": 0.5,
"true_anomaly_degrees": 60
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.flight_path_angle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |