8 8 8 8 8 8 8 8 8 8 8 8 8 8
8
8
|
|
Окружность по трем точкам 2D - Программирование от RIN.RU
Окружность по трем точкам 2D
Пусть даны три точки 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 равен бесконечности. Этого можно избежать, просто поменяв порядок точек так, чтобы вертикальных линий не появлялось.
1 2
8 8 8
| |
|
|