Я постараюсь выразить все через единичные векторы p , q и r , которые можно рассматривать как точки на единице сфера & Sigma; с центром в начале координат 0 . Вы можете преобразовать это в земные величины, увеличив масштаб на радиус Земли. Здесь есть некоторые справочные материалы .
Мы хотим найти расстояние до большого круга d от p до большого круга C , проходящего через q и г . C - пересечение плоскости P и сферы & Sigma; , где P - плоскость, проходящая через q , r и источник 0 . d - это просто угол & theta; (выражено в радианах) между p и P . Нормальный вектор для P является нормализованным перекрестным произведением q & times; r / sin & phi ;, где & phi; это угол между q и r .
Мы получаем
* +1058 * & тэта; = arcsin (
p & sdot; (
q & times;
r ) / sin & phi;)
Как я уже сказал, все здесь масштабируется на радиус R Земли. Таким образом, три точки: * R *** p **, * R *** q **, * R *** r **, а расстояние равно R & theta;.
Однако, если все, что вам нужно, это найти комбинацию точек / линий с кратчайшим расстоянием, вы можете пропустить умножение на R . Фактически вы можете опустить arcsin () и просто посмотреть на относительные размеры p & sdot; ( q & times; r ) / sin & phi;.