Задача: Три произвольно заданных точки лежат на окружности. Составить на Паскале программу опредения координат центра этой окружности.
На чем я застрял: раз три точки - ежику ясно: вершины треугольника с описанной вокруг него окружностью. Стороны, площадь, радиус - пожалуйста, не проблема вычислить, т.к. координаты точек есть. Но что дальше? ](*,)
В методичке даже близко подобного ничего нету, включив логику и остатки знаний по геометрии, вторую неделю бьюсь с идеей нахождения через серединные перпендикуляры к сторонам.
Т.е. если одну сторону получившегося треугольника представить, как часть графика функции Y=kX+b, то перпендикуляр, если не ошибаюсь, будет Yp=-X/k+b (так?). Если добавить поправочный коэф-т, чтоб при Хсреднем давал Yсреднее - формула серединного перпендикуляра готова. Но как найти точку пересечения этих самых перпендикуляров (aka центр окружности) - вообще идей нету, школьная математика успела вылететь напрочь за эти годы. Да и было ли оно такое в школе?
А может есть более простой алгоритм? Задачка-то считается обычной контрольной для заочников, всего лишь второе задание из 4, причем остальные три я расщелкал как орешки...
Дык, я о том же. Только мало того, что должна быть прямая, так ей еще и придется быть параллельной оси ОХ или OY. Из
a1:=x2-x1;
a2:=x3-x1;
b1:=y2-y1;
b2:=y3-y1;
znam:=a1*b2-a2*b1;
видно, что для деления на 0 нужно либо X1=X2=X3, либо Y1=Y2=Y3.
Настоящий джентльмен назовет кошку кошкой, даже наступив на нее в темноте.
Что-то ищем? Google в помощь
Не обязательно параллельной, если x2-x1=y2-y1 и y3-y1=x3-x1 то будет ноль, к примеру (100;100) (200;200) (300;300)
--== Михаил ==--
Отправить комментарий