Проблема нахождения пересечения / объединения 'N' дисков / кругов на плоской плоскости была впервые предложена М. И. Шамосом в его диссертации 1978 года:
Шамос М.И. «Вычислительная геометрия» к.т.н. диссертация, Йельский университет, Нью-Хейвен, Коннектикут, 1978.
С тех пор, в 1985 году, Миха Шарир представил O (n log2n) детерминистический алгоритм времени и пространства O (n) для задачи пересечения / объединения дисков (на основе модифицированных диаграмм Вороного): Шарир, М. Пересечение и ближайшие пара задач для набора плоских дисков. SIAM .J Comput. 14 (1985), сс. 448-468.
В 1988 году Франц Аурнхаммер представил более эффективный алгоритм O (n log n) времени и пространства O (n) для пересечения / объединения окружностей с использованием степенных диаграмм (обобщений диаграмм Вороного): Аурнхаммер Ф. Улучшенные алгоритмы для дисков и шары с использованием силовых диаграмм. Журнал алгоритмов 9 (1985), с. 151-161.
Ранее, в 1983 году, Пол Г. Спиракис также представил O (n ^ 2) -детерминистический алгоритм времени и O (n) вероятностный алгоритм: Spirakis, P.G. Очень быстрые алгоритмы для области объединения многих кругов. Rep. 98, Dept. Comput. Sci., Courant Institute, Нью-Йоркский университет, 1983.
Я искал любые реализации описанных выше алгоритмов, сосредоточив внимание на пакетах вычислительной геометрии, и пока ничего не нашел. Так как ни один из них не кажется простым для практического применения, было бы очень здорово, если бы кто-то мог указать мне правильное направление!
Возможно, пакет конструктивной твердой геометрии (CSG) будет иметь элемент площади поверхности для перекрывающихся круговых примитивов?