Boolean operations on polygons
In-game article clicks load inline without leaving the challenge.
Boolean operations on polygons are a set of Boolean operations (AND, OR, NOT, XOR, ...) operating on one or more sets of polygons in computer graphics. These sets of operations are widely used in computer graphics, CAD, and in EDA (in integrated circuit physical design and verification software). These are also used for activities like rapid prototyping in product design, medical device development, or even the creation of elaborate artworks.

Algorithms
- Greiner–Hormann clipping algorithm
- Vatti clipping algorithm
- Sutherland–Hodgman algorithm (special case algorithm)
- Weiler–Atherton clipping algorithm (special case algorithm)
Uses in software
Early algorithms for Boolean operations on polygons were based on the use of bitmaps. Using bitmaps in modeling polygon shapes has many drawbacks. One of the drawbacks is that the memory usage can be very large, since the resolution of polygons is proportional to the number of bits used to represent polygons. The higher the resolution is desired, the more the number of bits is required.
Modern implementations for Boolean operations on polygons tend to use plane sweep algorithms (or Sweep line algorithms). A list of papers using plane sweep algorithms for Boolean operations on polygons can be found in References below.
Boolean operations on convex polygons and monotone polygons of the same direction may be performed in linear time.
See also
- Boolean algebra
- Computational geometry
- Constructive solid geometry, a method of defining three-dimensional shapes using a similar set of operations
- Geometry processing
- General Polygon Clipper, a C library which computes the results of clipping operations
- Nef polygon
Notes
Bibliography
- Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf, Computational Geometry - Algorithms and Applications, Second Edition, 2000
- Jon Louis Bentley and Thomas A. Ottmann, , IEEE Transactions on Computers, Vol. C-28, No. 9, September 1979, pp. 643–647
- Jon Louis Bentley and Derick Wood, , IEEE Transactions on Computers, Vol. C-29. No. 7, July 1980, pp. 571–577
- Ulrich Lauther, , 18th Design Automation Conference, 1981, pp. 555–562
- James A. Wilmore, , 18th Design Automation Conference, 1981, pp. 571–579
- Nievergelt, J.; Preparata, F. P. (October 1982). "Plane-Sweep Algorithms for Intersecting Geometric Figures". Communications of the ACM. 25 (10): 739–747. CiteSeerX . doi:. S2CID .
- Thomas Ottmann, Peter Widmayer, and Derick Wood, "," Computer Vision, Graphics, and Image Processing, 30, 1985, pp. 249–268
External links
- , by Dave Eberly.
Software
- Michael Leonov has compiled a .
- Angus Johnson has also .
- SINED GmbH has 2012-11-16 at the Wayback Machine.
- A comparison of 5 clipping libraries at
- A commercial library for 3D Boolean operations: .
- The , solutions to mathematical problems with 2D and 3D Polygons.
- Matthias Kramm's , a free C library for 2D polygons (BSD license).
- Klaas Holwerda's , a C++ library for 2D polygons.
- David Kennison's , a FORTRAN library based on the Vatti algorithm.
- Klamer Schutte's , a polygon clipper written in C++.
- Michael Leonov's , a C++ library, which extends the Schutte algorithm.
- Angus Johnson's , an open-source freeware library (written in Delphi, C++ and C#) that's based on the Vatti algorithm.
- , a safe Rust wrapper for Angus Johnson's Clipper2 library.
- Nail Sharipov’s , an open-source, highly optimized Rust library, supports polygons of any complexity.
- , a commercial library available in C++ and C#.
- in CGAL, the Computational Geometry Algorithms Library
- Alan Murta's 2011-02-27 at the Wayback Machine, General Polygon Clipper library.
- 2012-11-16 at the Wayback Machine, C++ and COM libraries for 2D polygons (optimized for large polygon sets, built-in spatial indices).