Ранние алгоритмы булевых операций с многоугольниками основывались на
битовых картах
. Использование битовых карт в моделировании многоугольных фигур и операциях над ними имеет много недостатков. Один из недостатков — может потребоваться очень много памяти, поскольку разрешение рисунка многоугольника пропорционально числу
пикселей
, используемых для представления многоугольников. Чем больше разрешение изображения, тем большее число бит требуется хранить в памяти.
Современная воплощение булевых операций над многоугольниками использует алгоритмы заметания плоскости (или
алгоритмы заметающей прямой
). Список статей, использующих алгоритм заметающей прямой для булевых операций над многоугольниками, можно найти ниже в списке литературы.
Matthew J. Katz, Mark H. Overmars, Micha Sharir.
Efficient hidden surface removal for objects with small union size // Computational Geometry (journal). — 1992. —
Т. 2
,
вып. 4
. —
С. 223–234
. —
doi
:
.
Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopf.
Algorithms and Applications. — Second Edition. — 2000.
Jon Louis Bentley, Thomas A. Ottmann.
Algorithms for Reporting and Counting Geometric Intersections // IEEE Transactions on Computers. — 1979. —
Т. C-28
,
вып. 9
. —
С. 643–647
.
Jon Louis Bentley, Derick Wood.
An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles // IEEE Transactions on Computers. — 1980. —
Т. C-29
,
вып. 7
. —
С. 571–577
.
James A. Wilmore.
18th Design Automation Conference. — 1981. — С. 571–579.
J. Nievergelt, F. P. Preparata.
Plane-Sweep Algorithms for Intersecting Geometric Figures // Communications of the ACM. — 1982. —
Т. 25
,
вып. 10
. —
С. 739–747
. —
doi
:
.
=Thomas Ottmann, Peter Widmayer, and Derick Wood.
Computer Vision, Graphics, and Image Processing. — 1985. — Т. 30. — С. 249–268.
Ссылки
, by Dave Eberly.
Алгоритмы и программы
Михаил Леонов составил
.
Ангус Джонсон составил также
.
Компания SINED GmbH составила
.
Сравнение 5 библиотек отсечения
Коммерческая библиотека для 3-мерных булевых операций:
.
, решения математических задач с 2D- и 3D-многоугольниками.
Маттиаса Крамма, свободно распространяемая библиотека на C для 2D-многоугольников (лицензия BSD).
Библиотека
Клааса Холверда, C++ библиотека для 2D-многоугольников.
Дэвида Кеннисона, библиотека на Фортране, основанная на алгоритме Ватти.
Кламера Шатте, программа отсечения многоугольника, написанная на C++.
Михаила Леонова, C++ library, расширяющая алгоритм Шатта.
Ангуса Джонсона, свободно распрстраняемая библиотека с открытым кодом (написанная на Delphi, C++ и C#), основанная на
.
, коммерческая библиотека, доступная на C++ и C#.
Алана Марта, библиотека «Общее Отсечение Многоугольника».
, C++ и COM библиотеки для 2D-многоугольников (оптимизирована для больших множеств многоугольников, встроенный пространственный индекс).