Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Линейная алгебра и аналитическая геометрия _ Нахождение окружности по трем точкам

Автор: Кузнецов Олег 20.8.2010, 5:46

Здраствуйте. Помогите пожалуйста справиться со школьной задачей:
Даны три точки с кординатами p1(x1,y1), p2(x2,y2), p3(x3,y3). Необходимо найти координаты центра - O(xo,yo) и радиус окружности проходящей терез три точки. (Радиус можно не находить - расстояние от центра до любой точки). По возможности решение должно быть такое, чтобы его можно быстро реализовать в программе.
Заранее благодарен.

Автор: tig81 20.8.2010, 12:16

А сами что пытались сделать?

Автор: Кузнецов Олег 20.8.2010, 12:55

Сам я тольо знаю как найти этот центр на бумаге:
1) соединить все точки отрезками
2) от середины отрезка провести перпендикуляр к отрезку
3) точка пересечения перпендикуляров будет центром описанной окружности
А как это выразить в формулах уравнения прямых и перпендикуляров прямых в данных точках,, да так чтобы запрогаммировать?

Автор: Евгений М. 20.8.2010, 13:03

Предлагаю свое решение для ЭВМ.

Для начала нужно проверить лежат ли эти точки на одной прямой (см. 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) куда-нибудь.

Автор: Евгений М. 20.8.2010, 13:27

Хотя Ваше решения наверно даже лучше.
Подскажу как реализовать.

Через две точки можно составить уравнение прямой (см. википедия).
Середину отрезков можно найти.
Теперь перпендикуляр. Пусть уравнение прямой имеет вид:
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 (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)