Геометрическая задачка - C#
Формулировка задачи:
Ребят помогите пожалуйста.
На плоскости заданы множество точек А и множество окружностей В. Найдите две такие различные точки из А, что проходящая через них прямая пересекается с максимальным количеством окружностей из В.
Решение задачи: «Геометрическая задачка»
textual
Листинг программы
function Peres(a, b: point; c: okr): boolean;{пересекаются или нет} var s, ab, h: real; begin s:= abs(a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y)); {удвоенная площадь треугольника вершины которого центр окружности и 2 точки} ab:= sqrt(sqr(a.x - b.x) + sqr(a.y - b.y)); {сторона, противоположная центру окружности} h:= s / ab; {высота на нее = расстояние от центра до прямой} Peres:= h < c.r;{если оно меньше радиуса, пересекаются} end;