Interested Article - Булевы операции над многоугольниками

Различные булевы операции над множествами принадлежащими двум фигурам ( диаграммы Венна )

Бу́левы опера́ции над многоуго́льниками и́ли фигу́рами — это набор булевых операций (AND, OR, NOT, XOR, ...) с одним или несколькими наборами многоугольников в компьютерной графике. Эти наборы операций широко используются в компьютерной графике , САПР и в проектировании электронных схем (физическое расположение элементов интегральных схем и программы проверки).

Алгоритмы

Применение в программировании

Ранние алгоритмы булевых операций с многоугольниками основывались на битовых картах . Использование битовых карт в моделировании многоугольных фигур и операциях над ними имеет много недостатков. Один из недостатков — может потребоваться очень много памяти, поскольку разрешение рисунка многоугольника пропорционально числу пикселей , используемых для представления многоугольников. Чем больше разрешение изображения, тем большее число бит требуется хранить в памяти.

Современная воплощение булевых операций над многоугольниками использует алгоритмы заметания плоскости (или алгоритмы заметающей прямой ). Список статей, использующих алгоритм заметающей прямой для булевых операций над многоугольниками, можно найти ниже в списке литературы.

Булевы операции над выпуклыми многоугольниками и с одинаковыми направлениями можно осуществить за линейное время .

См. также

Примечания

  1. , с. 223–234.

Литература

  • 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 .
  • Ulrich Lauther. 18th Design Automation Conference. — 1981. — С. 555–562.
  • 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-многоугольников (оптимизирована для больших множеств многоугольников, встроенный пространственный индекс).
Источник —

Same as Булевы операции над многоугольниками