# Flight Simulator X mathematics

Ceren Alatas Guest

Hello everybody,
For a project, I need to find out how mathematics is used in flight simulator x. Is there a way that I can change the landing angle? Moreover is it possible to find the distance between landing and departure points?

## 3 Responses

RadarMan Chief Captain

lionlicker First Officer

Here are a few equations.
(1) GLIDESLOPE ANGLE Ft/Nm
Expressed in Feet per Nautical mile.
To find that Ft/Nm angle when you are in a semi stable descent - -
FPM = feet per minute - rate of vertical speed
GS = Ground speed displayed on your GPS or DME (knots or nautical miles per hour)

Ft/Nm = (FPM * 60) / GS

So if you are reading 267 knots ground speed on your GPS or DME and you have your autopilot set to 1100 FPM (feet per minute) - then -
Ft/Nm = (1100 * 60) / 267 = 247

- - - - you are currently dropping 247 feet every Nautical mile - - that's your current glideslope angle

(2) Finding FPM given a known Ft/Nm glideslope that you are trying to target

FPM = (Ft/Mn * GS) / 60

So, you know you want to target say a 300 Ft/Nm glideslope - - and you notice you are currently showing a 315 knot ground speed. What will you set your FPM to ??

FPM = (300 * 315) / 60 = 1575

So you would set your FPM to -1600 , thereby setting yourself on the correct glideslope.

(3) Notes. There are 6076 feet per nautical mile if you want find the actual mathmatical angle. Example: 300 Ft/Nm = ATan(300 / 6076) = 2.8 degrees

In practicality, when executing a descent under power towards a waypoint in the sky or a runway threshhold, you need to keep cycling through these detirminations - your actual glideslope - your required FPM - as GS is continually changing all the time, updrafts and downdrafts.

Knowing how to quickly detirmine Ft/Nm and FPM is crucial when you have engine failure, and need to make good decisions fast.

lionlicker First Officer

Some more Equations:

All lats/longs need to be converted into Radians first before using any of the following equations
format# [DDD MM.mm] >> radians = (DDD + (MM.mm / 60))/180 * Pi

' North = Positive : South = Negative : East = Positive : West = Negative
' Example: Hong Kong
' N/S format("89 59.99") N 22 19.02 = 0.38950513 radians latitude
' E/W format("179 59.99") E 114 12.16 = 1.99321255 radians longtitude

Example Perth : S31 56.42 E115 58.02 to Hong Kong N22 19.02 E114 12.16

Visual Basic code example: -

'Departure I = lat1 : M = long1
'Destination J = lat2 : N = long2
' K = J - I
' L = N - M
' B = Bearing direction in radians
' D = Distance in meters
R = 6371000 ' mean radius of earth in meters

' - - - - - - - - - - - - - - - - - - - - - - - - 1 Nm = 1852 Meters

GREAT CIRCLE DISTANCE
Haversine Method

'H = Math.Sin(K / 2) ^ 2 + Math.Cos(I) * Math.Cos(J) * Math.Sin(L / 2) ^ 2
'C = 2 * Math.Atan2(Math.Sqrt(H), Math.Sqrt(1 - H))
'D = R * C
'Text = (D / 1000).ToString("0.00") & " kilometers"

' Law of Cosine Method
'D = Math.Acos(Math.Sin(I) * Math.Sin(J) + Math.Cos(I) * Math.Cos(J) * Math.Cos(L)) * R
'Text = (D / 1000).ToString("0.00") & " kilometers"

' BEARING
'B = Math.Atan2(Math.Sin(L) * Math.Cos(J), Math.Cos(I) * Math.Sin(J) - Math.Sin(I) * Math.Cos(J) * Math.Cos(L))
'B = B / Math.PI * 180
'If B < 0 Then B += 360
'Text = (B).ToString("0.00") & " degrees"

' MIDPOINT
'X = Math.Cos(J) * Math.Cos(L)
'Y = Math.Cos(J) * Math.Sin(L)
'P = Math.Atan2(Math.Sin(I) + Math.Sin(J), Math.Sqrt((Math.Cos(I) + X) ^ 2 + Y ^ 2))
'Q = M + Math.Atan2(Y, Math.Cos(I) + X)
'P = P / Math.PI * 180 : Q = Q / Math.PI * 180
'If P < 0 Then S = "S " Else S = "N "
'If Q < 0 Then T = "W " Else T = "E "
'If P < 0 Then P *= -1
'If Q < 0 Then Q *= -1
'S &= Int(P).ToString("00") & " " & ((P Mod 1) * 60).ToString("00.00")
'T &= Int(Q).ToString("000") & " " & ((Q Mod 1) * 60).ToString("00.00")
'Text = S & " " & T

' - - - - - - - - - - - - - - - - 1 Nm = 1852 Meters

' DESTINATION POINT given distance and bearing from start point
'I = -0.21666808 : M = 2.28423166 ' Darwin
'B = -2.15408536 ' 238.5 degrees True
'D = 1762080 ' 952 nautical mile

'B = -2.141518992 ' 237.30 degrees True
'D = 3727203 ' 2011.24 nautical mile

'J = Math.Asin(Math.Sin(I) * Math.Cos(D / R) + Math.Cos(I) * Math.Sin(D / R) * Math.Cos(B))
'N = M + Math.Atan2(Math.Sin(B) * Math.Sin(D / R) * Math.Cos(I), Math.Cos(D / R) - Math.Sin(I) * Math.Sin(J))
'J = J / Math.PI * 180 : N = N / Math.PI * 180
'If J < 0 Then S = "S " Else S = "N "
'If N < 0 Then T = "W " Else T = "E "
'If J < 0 Then J *= -1
'If N < 0 Then N *= -1
'S &= Int(J).ToString("00") & " " & ((J Mod 1) * 60).ToString("00.00")
'T &= Int(N).ToString("000") & " " & ((N Mod 1) * 60).ToString("00.00")
'Text = S & " " & T

All times are GMT Page 1 of 1