@User1Mark

Как реализовать поиск координат пересечения трех окружностей, если даны координаты радиусов этих окружностей и их радиус?

Есть 3 точки и 3 расстояния
3 точки - 3 произвольные точки, которые являются центрами окружностей. Их координаты нам известны
3 расстояния - 3 расстояния, соответственно, от центров окружностей до точки пересечения этих окружностей
Эти окружности обязательно пересекаются и имеют одну общую точку.
Нужно найти координаты точки пересечения этих трех окружностей.

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

Как реализовать это в виде кода на python? (Можно использовать sympy)
657b28e03e9f2196701119.png
  • Вопрос задан
  • 337 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Сначала решить систему уравнений чтобы найти точки пересечения двух окружностей. Примем xi, yi за центр, а Ri за радиус. Тогда получим:
(x - xA)^2 + (y - yA)^2 = RA^2
(x - xB)^2 + (y - yB)^2 = RB^2
Раскрываем скобки, вычитаем первое уравнение из второго, получаем квадратное уравнение. 2 корня - 2 точки пересечения, 1 корень - одна точка касания, нет корней - окружности не пересекаются.
Потом эти точки (1 или 2) проверить на принадлежность третьей окружности, т.е. убедиться что выполняется условие (x - xС)^2 + (y - yС)^2 = RС^2. Проверку выполнения нужно проводить с некоторой точностью, т.е. сравнение делать не a == b, а скорее в духе abs(a - b) < 0.000001.
Вот и всё.

Если можно использовать sympy, то можешь попробовать сразу задать систему из трёх уравнений в нём.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы