Помощь - Поиск - Пользователи - Календарь
Полная версия: Нахождение окружности по трем точкам > Линейная алгебра и аналитическая геометрия
Образовательный студенческий форум > Высшая математика > Линейная алгебра и аналитическая геометрия
Кузнецов Олег
Здраствуйте. Помогите пожалуйста справиться со школьной задачей:
Даны три точки с кординатами p1(x1,y1), p2(x2,y2), p3(x3,y3). Необходимо найти координаты центра - O(xo,yo) и радиус окружности проходящей терез три точки. (Радиус можно не находить - расстояние от центра до любой точки). По возможности решение должно быть такое, чтобы его можно быстро реализовать в программе.
Заранее благодарен.
tig81
А сами что пытались сделать?
Кузнецов Олег
Сам я тольо знаю как найти этот центр на бумаге:
1) соединить все точки отрезками
2) от середины отрезка провести перпендикуляр к отрезку
3) точка пересечения перпендикуляров будет центром описанной окружности
А как это выразить в формулах уравнения прямых и перпендикуляров прямых в данных точках,, да так чтобы запрогаммировать?
Евгений М.
Предлагаю свое решение для ЭВМ.

Для начала нужно проверить лежат ли эти точки на одной прямой (см. http://alexlarin.narod.ru/Ucheb/mamirgr2.html п. 1).
Если все точки лежат на одной прямой, то провести окружность невозможно (утверждение не обосновал).

Далее пусть координаты центра окружности - (x, y), координаты точек (x1, y1), (x2, y2), (x3, y3), радиус - r.
Пусть x1 не равен x2 (Если равен то взять другую пару).
Тогда справедливо следующее:
(x-x1)^2+(y-y1)^2=r^2 (1)
(x-x2)^2+(y-y2)^2=r^2 (2)
(x-x3)^2+(y-y3)^2=r^2 (3)
Приравняем (1) и (2), затем выразим x через y.
Приравняем (1) и (3) (или (2) и (3)), подставляем выражение x и находим y. Через y находим x.
Для нахождения радиуса подставляем найденные (x, y) куда-нибудь.
Евгений М.
Хотя Ваше решения наверно даже лучше.
Подскажу как реализовать.

Через две точки можно составить уравнение прямой (см. википедия).
Середину отрезков можно найти.
Теперь перпендикуляр. Пусть уравнение прямой имеет вид:
x=x0+nx*t
y=y0+ny*t
Уравнение перпендикулярной к нему прямой проходящий через точку (x0, y0) имеет вид:
x=x0-ny*t
y=y0+nx*t
Про пересечение двух прямых я кое-где уже обсуждал:
http://www.cyberforum.ru/geometry/thread157427.html
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.