Jump to content

Boolean operations on polygons: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m External links: Clarified a link, and added final periods here and there.
m convert dodgy URL to ID using AWB
Line 7: Line 7:
Modern implementations for Boolean operations on polygons tend to use plane sweep algorithms (or [[Sweep line algorithm]]s). A list of papers using plane sweep algorithms for Boolean operations on polygons can be found in References below.
Modern implementations for Boolean operations on polygons tend to use plane sweep algorithms (or [[Sweep line algorithm]]s). A list of papers using plane sweep algorithms for Boolean operations on polygons can be found in References below.


Boolean operations on [[convex polygon]]s and [[monotone polygon]]s of the same direction may be performed in [[linear time]].{{fact|date=February 2012}}
Boolean operations on [[convex polygon]]s and [[monotone polygon]]s of the same direction may be performed in [[linear time]].{{citation needed|date=February 2012}}


== Bibliography ==
== Bibliography ==
{{refbegin}}
{{refbegin}}
* Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf, Computational Geometry - Algorithms and Applications, Second Edition, 2000
* 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, [http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1675432 Algorithms for Reporting and Counting Geometric Intersections], IEEE Transactions on Computers, Vol. C-28, No. 9, September 1979, pp. 643–647
* Jon Louis Bentley and Thomas A. Ottmann, [http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1675432 Algorithms for Reporting and Counting Geometric Intersections], IEEE Transactions on Computers, Vol. C-28, No. 9, September 1979, pp. 643–647
* Jon Louis Bentley and Derick Wood, [http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1675628 An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles], IEEE Transactions on Computers, Vol. C-29. No. 7, July 1980, pp. 571–577
* Jon Louis Bentley and Derick Wood, [http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1675628 An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles], IEEE Transactions on Computers, Vol. C-29. No. 7, July 1980, pp. 571–577
* Ulrich Lauther, [http://portal.acm.org/citation.cfm?id=802358&jmp=abstract An O(N log N) Algorithm for Boolean Mask Operations], 18th Design Automation Conference, 1981, pp. 555–562
* Ulrich Lauther, [http://portal.acm.org/citation.cfm?id=802358&jmp=abstract An O(N log N) Algorithm for Boolean Mask Operations], 18th Design Automation Conference, 1981, pp. 555–562
* James A. Wilmore, [http://portal.acm.org/citation.cfm?id=802360 Efficient Boolean Operations on IC Masks], 18th Design Automation Conference, 1981, pp. 571–579
* James A. Wilmore, [http://portal.acm.org/citation.cfm?id=802360 Efficient Boolean Operations on IC Masks], 18th Design Automation Conference, 1981, pp. 571–579
* J. Nievergelt and F. P. Preparata, [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.83.3275&rep=rep1&type=pdf Plane-Sweep Algorithms for Intersecting Geometric Figures (citeseer)], Communications of the ACM, October 1982, Vol. 25, No. 10, pp. 739–747
* {{cite journal | first = J. | last1 = Nievergelt | first2 = F. P. | last2 = Preparata | title = Plane-Sweep Algorithms for Intersecting Geometric Figures | id = {{citeseerx|10.1.1.83.3275}} | journal = Communications of the ACM | month = October | year = 1982 | volume = 25 | issue = 10 | pages = 739–747 }}
* Thomas Ottmann, Peter Widmayer, and Derick Wood, "A Fast Algorithm for the Boolean Masking Problem," Computer Vision, Graphics, and Image Processing, 30, 1985, pp. 249–268
* Thomas Ottmann, Peter Widmayer, and Derick Wood, "A Fast Algorithm for the Boolean Masking Problem," Computer Vision, Graphics, and Image Processing, 30, 1985, pp. 249–268
{{refend}}
{{refend}}


Line 40: Line 40:
* Klamer Schutte's [http://clippoly.sourceforge.net/ Clippoly], a polygon clipper written in C++.
* Klamer Schutte's [http://clippoly.sourceforge.net/ Clippoly], a polygon clipper written in C++.
* Michael Leonov's [http://www.complex-a5.ru/polyboolean/comp.html poly_Boolean], a C++ library, which extends the Schutte algorithm.
* Michael Leonov's [http://www.complex-a5.ru/polyboolean/comp.html poly_Boolean], a C++ library, which extends the Schutte algorithm.
* Angus Johnson's [http://sourceforge.net/projects/polyclipping/ Clipper], an open-source freeware library (written in Delphi, C++ and C#) that's based on the [[Vatti_clipping_algorithm|Vatti algorithm]].
* Angus Johnson's [http://sourceforge.net/projects/polyclipping/ Clipper], an open-source freeware library (written in Delphi, C++ and C#) that's based on the [[Vatti clipping algorithm|Vatti algorithm]].
* Francisco Martínez has developed a [http://wwwdi.ujaen.es/~fmartin/bool_op.html C++ public domain library] for 2D Boolean operations based on his own plane sweep algorithm.
* Francisco Martínez has developed a [http://wwwdi.ujaen.es/~fmartin/bool_op.html C++ public domain library] for 2D Boolean operations based on his own plane sweep algorithm.
* [http://www.geolib.co.uk/index.htm GeoLib], a commercial library available in C++ and C#.
* [http://www.geolib.co.uk/index.htm GeoLib], a commercial library available in C++ and C#.

Revision as of 15:36, 20 July 2012

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).

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.[citation needed]

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, Algorithms for Reporting and Counting Geometric Intersections, IEEE Transactions on Computers, Vol. C-28, No. 9, September 1979, pp. 643–647
  • Jon Louis Bentley and Derick Wood, An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles, IEEE Transactions on Computers, Vol. C-29. No. 7, July 1980, pp. 571–577
  • Ulrich Lauther, An O(N log N) Algorithm for Boolean Mask Operations, 18th Design Automation Conference, 1981, pp. 555–562
  • James A. Wilmore, Efficient Boolean Operations on IC Masks, 18th Design Automation Conference, 1981, pp. 571–579
  • Nievergelt, J.; Preparata, F. P. (1982). "Plane-Sweep Algorithms for Intersecting Geometric Figures". Communications of the ACM. 25 (10): 739–747. CiteSeerx10.1.1.83.3275. {{cite journal}}: Unknown parameter |month= ignored (help)
  • Thomas Ottmann, Peter Widmayer, and Derick Wood, "A Fast Algorithm for the Boolean Masking Problem," Computer Vision, Graphics, and Image Processing, 30, 1985, pp. 249–268

See also

Software