-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapx-shortest-route.tex
113 lines (100 loc) · 4.79 KB
/
apx-shortest-route.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass[gap.tex]{subfiles}
\begin{document}
\label{sec:shortest-route}
Given the task control zones, how is the optimized task
distance~\ref{sec:task-distance} worked out? FS uses a method of line circle
intersections on a projected plane.
\subsection{Line-Circle Intersections on a Projected Plane}
Currently, this method mistreats the case where after ESS one or several
turnpoints have to be reached with centres different from ESS’ centre point:
The two legs to and from ESS are optimized for distance as well, which can
result in a longer last leg before ESS than what pilots experience in reality.
As a result, pilots can reach ESS with a shorter flown distance than what FS
indicates is the distance required to reach ESS. This only affects pilots
landing between ESS and goal, but does not represent a disadvantage to those
pilots. The speed section distance calculation used for scoring (see below) is
not affected by this.
Generally the algorithm does the following:
\begin{enumerate}
\item
Converts all coordinates to planar. Planar coordinates are UTM Easting
and Northing. The UTM Zone is automatically determined from the
Longitude of the first point in the task definition. Then all other
conversions are forced to be in the very same UTM Zone even if they are
outside. This avoids anomalies when a competition is run in area
covering two adjacent UTM Zones.
\item
Finds the shortest route in the projection plane, an adjustment made in
three steps;
\begin{enumerate}
\item
Take the previous touching point \(A\).
\item
Take the next touching point \(B\).
\item
Calculate a point \(R\) on the circle so the distance
$\overleftrightarrow{ARB}$ is shortest possible, considering three
possible crossings by line of the circle;
\begin{enumerate}
\item
Line segment $\overleftrightarrow{AB}$ \textbf{crosses the circle in
1 point}, see Fig~\ref{fig:planar-one-cross}.\\The point \(R\) is the
intersection of $\overleftrightarrow{AB}$ and the circle.
\begin{figure}[ht]
\centering
\input{dia/shortest-path-planar/one-cross}
\caption{Line segment crosses the circle in 1 point}
\label{fig:planar-one-cross}
\end{figure}
\item
Line segment $\overleftrightarrow{AB}$ \textbf{crosses the circle in
2 points.}, see Fig~\ref{fig:planar-two-cross}.\\ The point \(R\) is
the intersection of the circle and the line segment
$\overleftrightarrow{AC'}$ where \(C'\) is the closest point on
$\overleftrightarrow{AB}$ to the center of the circle.
\begin{figure}[ht]
\centering
\input{dia/shortest-path-planar/two-cross}
\caption{Line segment crosses the circle in 2 points}
\label{fig:planar-two-cross}
\end{figure}
\item
Line segment $\overleftrightarrow{AB}$ \textbf{doesn’t cross the
circle}, see Fig~\ref{fig:planar-no-cross}.\\ The new point \(R\) is
the intersection of the circle and line $\overleftrightarrow{CK}$ where
\(K\) is point on $\overleftrightarrow{AB}$ so that \(|AK| / |BK|
= |AT| / |BT|\) where \(T\) is current best touching point. The sum
\(|AR| + |BR|\) is at a minimum when angles $\angle{ARC}$ and
$\angle{BRC}$ are equal. Angles are equal when \(|AK| / |BK| = |AR|
/ |BR|\).
\begin{figure}[ht]
\centering
\input{dia/shortest-path-planar/no-cross}
\caption{Line segment doesn't cross the circle}
\label{fig:planar-no-cross}
\end{figure}
\end{enumerate}
\end{enumerate}
The algorithm is iterative, with every iteration it finds new route that is
(potentially) shorter than the one from previous iteration. When no further
shortening is possible the algorithm stops. For every Turnpoint in the route
is calculated best touching point. With every iteration the best touching
points are adjusted in the same order as the turnpoints in the task. Initially
the touching points are at the turnpoints and after 1st iteration they are at
the circles defining control zones.
After some iterations \(T\) and \(R\) become at the same place. The same is
valid if \(A\) and \(B\) are inside the circle.
If the current control zone is goal line then the best touching point is just
the point on the line closer to point \(A\) because the goal line can
be only at the end of the task, there is no point \(B\).
\item
Converts the coordinates of the shortest route back to geodetic.
Nothing special, just UTM to Latitude, Longitude conversion.
\item
Calculates the route distance according to geodetic coordinates.
Final distance calculation is made with the current FAI distance formula
between two points defined with geodetic coordinates.
\end{enumerate}
\end{document}