# Calculate flight path angle given semi-major axis, eccentricity and distance from the focal point

How can I, given the semi-major axis (α), the eccentricity (ε), and the distance from the focal point (r), calculate the flight path angle (φ)? (As shown above)

One method of calculating the angle involves using the ellipse reflection law. Light from one focus reflects off the ellipse into the other focus.

Thus in the picture below (by the author), the radial vector from the focus $$F_1$$ is reflected at $$P$$ onto the second focus $$F_2$$, forming a triangle whose third side is the line between the foci.

Your flight angle $$\psi$$ is the angle of incidence between the radial vector and the dashed line which us perpendicular to the (tangential) flight path, and also the angle of reflection towards the second focus. Thus the angle in the triangle at $$P$$ measures $$2\psi$$.

We now apply the Law of Cosines to this triangle:

$$\cos2\psi=\dfrac{PF_1^2+PF_2^2-(F_1F_2)^2}{2(PF_1)(PF_2)}$$

$$=\dfrac{r^2+(2\alpha-r)^2-4\alpha^2\epsilon^2}{2r(2\alpha-r)}$$

In a circular orbit you have $$\epsilon=0$$ and $$r=\alpha$$, forcing the cosine to $$1$$ as expected. For an elliptical orbit when you're on the minor axis ($$r=\alpha$$) you get a formula for the maximal flight angle:

$$\cos2\psi_{max}=1-2\epsilon^2$$

Or, from the double angle formula for cosine, simply

$$\sin\psi_{max}=\epsilon$$

• sorry to be a pedant -- could you please edit this with gammas instead of psis/phis? May 5 '20 at 13:21
• The OP used psi for the angle and I followed suit. Gamma in the OP's picture is the center to focus distance. May 5 '20 at 18:01
• Thanks for the heads-up. Those are some interesting labels... May 5 '20 at 18:11

If your ellipse is a circle, the Flight Path Angle is 0. You’re done.

Otherwise, for an elliptical orbit, start with the polar equation that relates radial distance $$r$$, true anomaly $$\theta$$, semimajor axis $$a$$, and orbital eccentricity $$e$$:

$$r=\frac{a(1-e^2)}{1+e\cos\theta}$$

Solving for $$\theta$$ gives us the following:

$$\theta = \arccos\left({\frac{-ae^2+a-r}{er}}\right)$$

Note that there are two positions on an elliptical orbit with the same radial distance: One where the spacecraft is ascending, and one where it is descending. This equation will give you the positive values of True Anomaly thanks to the $$\arccos$$ function, where the spacecraft is ascending from periapsis to apoapsis.

Flight path angle can now be calculated as $$\phi=\pm \arctan\frac{e \sin \theta}{1 + e \cos \theta}$$

If the spacecraft is ascending from periapsis to apoapsis, flight path angle will be positive. If it is descending, flight path angle will be negative.

The flight path angle is simply the angle between the velocity vector and the vector perpendicular to the position vector. An easy way to visualise this: If the orbit was a circle, this angle would be zero. The angle is therefore due to the contribution of the inward/outward motion of the object away from the focal point.

The semi major axis ($$a$$) and eccentricity ($$e$$) define the shape of your orbit. Using this information, calculate the following (I'm omitting basic math and formulas):

1. Direction of tangent vector to the eclipse. This would be a function of position $$(x,y)$$ and the ellipse parameters itself.
2. Perpendicular to the position vector (focal point is origin). This is very straightforward.

With these two vectors in hand, you can use their dot product to obtain the angle between them. This is the flight angle.

• Can you explain the math? May 4 '20 at 17:00
• @konmal88 I think this does "explain" the math, perhaps what you want is the actual math itself?
– uhoh
May 5 '20 at 15:44

FWIW, Here is the formula for converting the focus-eccentricity-directrix parameter set to the generalized quadratic formula $$Ax^2 +Bxy + Cy^2 + Dx + Ey + F = 0$$ . This is in the R language.

FEDtoA <-function(focus = c(0,0), directrix = c(1,0,1), eccentricity = 0.5 ) {
h = focus[1]
v = focus[2]
da = directrix[1]
db = directrix[2]
dc = directrix[3]
ec = eccentricity^2
# sign flip from GFG page
k = (da^2 + db^2)
parA = k - ec*da^2 # A term
parA[2] = -2*ec*da*db  # B term,  and so on
parA[3] = k -ec*db^2
parA[4] = -2*h*k - 2*ec*da*dc
parA[5] = -2*v*k - 2*ec*db*dc
# if dc is zero get degenerate case because F is zero? yes -- not a bug.
parA[6] = -ec*dc^2 + k*(h^2 + v^2)

return(invisible(parA))
}


That should make it easier to generate the conic section curve, and thus derive the angle from a given point on the ground.