Вычислить точку на расстоянии между двумя координатами - PullRequest
0 голосов
/ 15 октября 2019

Учитывая две точки A и B и расстояние d, я пытаюсь вычислить точку C между A и B и на расстоянии d от точки A.

enter image description here

Я думал об использовании теоремы Фалеса, но есть ли лучшее / более простое решение?

Приветствия!

1 Ответ

0 голосов
/ 17 октября 2019

Конечно, теорема Фалеса (Перехват) является подходящим методом, и вырожденный случай этой теоремы применяется, когда одна из двух пересекающихся линий является координатной осью (например, latA)

Итак,шаги будут:

set a variable to the delta rise: deltalat = latB - latA 
set a variable to the delta run: deltalng = lngB - lngA 
compute the full (pythagorean) distance from A to B:  dist = sqrt(deltalat*deltalat + deltalng*deltalng) 
compute angle from horizontal: ang= arcsin(deltalat/dist)
compute new lat: latC = latA + (d * sin(ang))
compute new lng: lngC = lngA + (d * cos(ang))

Я быстро прошел через это в голове, поэтому, пожалуйста, перепроверьте мой триг.

...