Окружность по трем гео-координатам?

Имееются координаты трех точек на карте.

Надо найти координаты центра описанной вокруг получившегося треугольника окружности.


Классическое геометрическое решение через перпендикуляры не подходит, без полиноминального преобразования, выполнять последнее очень не хочется (да и если честно не совсем понятно как его производить).


Нет ли идей как более простым способом найти центр?


расчет ведется на php

04986c3df2c9e81fe9b5153de52fb776.png


вот конкретный пример. Необходимые три точки обозначены в виде крестиков, четвертый крестик это центр окружности, получившийся при использовании классического подхода из геометрии, через перпендикуляры


задача вцелом (из риэлторской тематики):

Яндекс-карты не умеют определять пересечения улиц (

Мы придумали такой способ: есть база с домами (находящихся на улицах) и координатами этих домов. Надо найти перекресток двух заведомо пересекающихся улиц.

Выбираем все дома по этим улицам и ищем дома, находящиеся к примеру в пределах 200 метрах друг от друга (но на разных улицах ес-но, т.е. каждый дом с одной улицы сравниваем с каждым домом на другой улице). По-сути на картинке именно это и изображено (разные улицы = разные иконки). Дальше уже надо определить примерную область, в которой будет находится дом, указанный в объявлении как «перекресток улиц Тухачевского и Магнитогорской». Примерная область = окружность
  • Вопрос задан
  • 5395 просмотров
Пригласить эксперта
Ответы на вопрос 7
Horse
@Horse
C помощью метода координат. Например по 1 и 2 точке строите уравнение прямой равноудаленной от этих двух точек. Потом тоже самое, например, для 2 и 3 точки. Пересечение этих двух прямых будет центром окружности. Радиус — очевидно, расстояние от центра до любой из точек.
Ответ написан
Horse
@Horse
Еще раз… Правильно ли я понимаю… Нужна окружность которая которая проходит через 3 заданные точки (что однозначно определяют окружность)?
Ответ написан
hayk
@hayk
Поясните пожалуйста, нужна ли окружность, которая проходит через все три точки, или же нужна окружность, внтури которой находятся все три точки?
Ответ написан
mythmaker
@mythmaker
Классическая олимпиадная задача по программированию, решения можно найти тут.
Ответ написан
Sannis
@Sannis
Боюсь без кропотливой работы со сферическими координатами ничего путного не получится. Но и рисовать такую «окружность» будет не просто.

Если радиус небольшой, как у вас на рисунке, то должно через перпендикуляры считаться. Проверьте ещё раз выкладки.
Ответ написан
neco
@neco
инженерммм
а если предположить что всё-таки земля (геоид) это почти сфера, тогда можно попробовать пойти через сферу римана и комплекс...?
но это так пока только идея, надо подумать как это реализовать…
Ответ написан
Комментировать
Horse
@Horse
надуплил… Извеняюся…
То что я сказал — справедливо для остроугольных (каждый угол < 90), иначе то что сказал havk
> Если точек 3, и нужна окружность внутри которой будут находиться все три точки, то ее центром будет точка, которая является серединой самой длинной стороны треугольника, которую образуют эти точки.

Если 1x != 1y — привидите в нормальную декартовую систуму координат и делайте то, что мы описали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы