:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте ::
Путь: Математика » Геометрия » Способы задания фигур » Окружность
  Окружность по трем точкам 2D



Paul Bourke

Перевод Кантора И.А.

Пусть даны три точки P1, P2,P3 плоскости.


  Вычисление центра



Проведем через пары точек две прямые. Первая линия пусть проходит через P1 и P2, а прямая b - через P2 и P3.
Уравнения этих прямых будут

где m - коэффициент наклона линии, получаемый из

Центр круга - находится на пересечении двух перпендикулярных прямых, проходящих через середины отрезков P1P2 и P2 P3. Легко доказать, что прямая, перпендикулярная к линии с коэффициентом наклона m имеет коэффициент наклона -1/m, значит уравнения прямых, перпендикулярных a и b и проходящих через середины P1P2 и P2P3 будут

Они пересекаются в центре, и решение относительно x дает

Значение у вычислим подстановкой x в уравнение одного из перпендикуляров. Можно и наоборот: сначала решить относительно y, а потом найти x.


  Радиус



Радиус найти элементарно. Например, точка P1 лежит на окружности. и мы знаем центр..


  Замечания



  • Знаменатель (mb - ma) равен нулю, когда прямые параллельны. В этом случае они совпадают, то есть круга не существует.

  • Если какая-нибудь из прямых вертикальна, то ее коэффициент наклона m равен бесконечности. Этого можно избежать, просто поменяв порядок точек так, чтобы вертикальных линий не появлялось.

  Исходник



C++ код с использованием MFC by Jae Hun Ryu. сircle.cpp, сircle.h.