Учитывая две точки A (x1, y1) и B (x2, y2), я хочу найти расстояние между третьей точкой C (x3, y3) и линией AB и длиной AD на сферической поверхности

#java #geometry #distance #spherical-coordinate

#java #геометрией #расстояние #сферическими координатами

Вопрос:

У меня есть две точки, мне нужно расстояние между линией AB и точкой C. Наряду с этим мне также нужна длина AD, где D — точка проекции / пересечения C на AB. В 2-d я могу получить точку проекции, как указано здесь, но ::

 double A=thirdX-startX;
double B=thirdY-startY;
double C=endX-startX;
double D=endY-startY;
double dot = A * C   B * D;
double len_sq = C * C   D * D;

double xProjection, yProjection,param;
param = dot / len_sq;
if (param < 0) {
    xProjection = startX;
    yProjection = startY;
}
else if (param > 1) {
    xProjection = endX;
    yProjection = endY;
}
else {
    xProjection = startX   param * C;
    yProjection = startY   param * D;
}
double deltaX= thirdX -xProjection;
double deltaY= thirdY-yProjection;
double AD= Math.sqrt(deltaX*deltaX deltaY*deltaY);
double AD= Math.sqrt((startX-xProjection)*(startX-xProjection) (startY-yProjection)*(startY-yProjection));
  

Но я хочу сделать то же самое, учитывая координаты на сфере, а не на двумерной поверхности.Заранее спасибо!
введите описание изображения здесь

Комментарии:

1.ПОИСК в ИНТЕРНЕТЕ: 3D distance from point to line

2. Вопрос отклонен, потому что он «не показывает никаких исследовательских усилий» (цитируя всплывающую подсказку кнопки «Против голосования»).

Ответ №1:

очень полезная ссылка для расчетов на сферической плоскости / земле: https://www.movable-type.co.uk/scripts/latlong.html Расстояние между дорожками и расстояние вдоль дорожки дают мне CD и AD соответственно.