Knowledge (XXG)

Boolean operations on polygons

Source đź“ť

47: 92:. 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. 76: 60: 332: 208: 20: 301: 70: 437: 167: 165:
Katz, Matthew J.; Overmars, Mark H.; Sharir, Micha (1992), "Efficient hidden surface removal for objects with small union size",
377: 391: 315: 457: 424: 296: 462: 36: 133: 99:). A list of papers using plane sweep algorithms for Boolean operations on polygons can be found in References below. 343: 402: 65: 243:
Nievergelt, J.; Preparata, F. P. (October 1982). "Plane-Sweep Algorithms for Intersecting Geometric Figures".
144: 252: 128: 32: 444:, C++ and COM libraries for 2D polygons (optimized for large polygon sets, built-in spatial indices). 282: 204:, and Otfried Schwarzkopf, Computational Geometry - Algorithms and Applications, Second Edition, 2000 96: 257: 139: 46: 329: 222: 270: 95:
Modern implementations for Boolean operations on polygons tend to use plane sweep algorithms (or
40: 229: 214: 28: 262: 176: 107: 441: 428: 336: 123: 434: 103: 401:, an open-source freeware library (written in Delphi, C++ and C#) that's based on the 451: 201: 181: 356: 274: 211:, IEEE Transactions on Computers, Vol. C-28, No. 9, September 1979, pp. 643–647 136:, a method of defining three-dimensional shapes using a similar set of operations 398: 322: 218: 111: 421: 236: 225:, IEEE Transactions on Computers, Vol. C-29. No. 7, July 1980, pp. 571–577 285:," Computer Vision, Graphics, and Image Processing, 30, 1985, pp. 249–268 88:
Early algorithms for Boolean operations on polygons were based on the use of
370: 266: 223:
An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles
89: 24: 330:
compared performance and memory utilization of three polygon clippers
414: 408: 384: 45: 27:
in computer graphics. These sets of operations are widely used in
147:, a C library which computes the results of clipping operations 359:, solutions to mathematical problems with 2D and 3D Polygons. 209:
Algorithms for Reporting and Counting Geometric Intersections
363: 411:, a safe Rust wrapper for Angus Johnson's Clipper2 library. 349: 239:, 18th Design Automation Conference, 1981, pp. 571–579 232:, 18th Design Automation Conference, 1981, pp. 555–562 23:(AND, OR, NOT, XOR, ...) operating on one or more sets of 394:, a C++ library, which extends the Schutte algorithm. 230:
An O(N log N) Algorithm for Boolean Mask Operations
281:Thomas Ottmann, Peter Widmayer, and Derick Wood, " 380:, a FORTRAN library based on the Vatti algorithm. 366:, a free C library for 2D polygons (BSD license). 348:A commercial library for 3D Boolean operations: 283:A Fast Algorithm for the Boolean Masking Problem 417:, a commercial library available in C++ and C#. 168:Computational Geometry: Theory and Applications 8: 43:physical design and verification software). 110:of the same direction may be performed in 256: 207:Jon Louis Bentley and Thomas A. Ottmann, 180: 342:A comparison of 5 clipping libraries at 237:Efficient Boolean Operations on IC Masks 157: 7: 387:, a polygon clipper written in C++. 431:, General Polygon Clipper library. 77:Weiler–Atherton clipping algorithm 61:Greiner–Hormann clipping algorithm 14: 323:compared three clipping libraries 297:UIUC Computational Geometry Pages 373:, a C++ library for 2D polygons. 200:Mark de Berg, Marc van Kreveld, 316:comparison of polygon clippers 314:Michael Leonov has compiled a 17:Boolean operations on polygons 1: 357:comp.graphics.algorithms FAQ 302:Constructive planar geometry 182:10.1016/0925-7721(92)90024-M 71:Sutherland–Hodgman algorithm 50:Different boolean operations 134:Constructive solid geometry 479: 344:rogue-modron.blogspot.com 245:Communications of the ACM 79:(special case algorithm) 73:(special case algorithm) 66:Vatti clipping algorithm 321:Angus Johnson has also 145:General Polygon Clipper 129:Computational geometry 102:Boolean operations on 51: 350:sgCore C++/C# library 267:10.1145/358656.358681 97:Sweep line algorithms 49: 458:Geometric algorithms 463:Geometry processing 140:Geometry processing 440:2012-11-16 at the 427:2011-02-27 at the 335:2012-11-16 at the 235:James A. Wilmore, 52: 41:integrated circuit 21:Boolean operations 390:Michael Leonov's 383:Klamer Schutte's 376:David Kennison's 369:Klaas Holwerda's 362:Matthias Kramm's 304:, by Dave Eberly. 215:Jon Louis Bentley 108:monotone polygons 29:computer graphics 470: 397:Angus Johnson's 278: 260: 228:Ulrich Lauther, 187: 185: 184: 162: 84:Uses in software 478: 477: 473: 472: 471: 469: 468: 467: 448: 447: 442:Wayback Machine 429:Wayback Machine 403:Vatti algorithm 337:Wayback Machine 328:SINED GmbH has 293: 288: 251:(10): 739–747. 242: 196: 191: 190: 164: 163: 159: 154: 124:Boolean algebra 120: 104:convex polygons 86: 57: 12: 11: 5: 476: 474: 466: 465: 460: 450: 449: 446: 445: 432: 418: 412: 409:clipper2 crate 406: 395: 388: 381: 374: 367: 360: 353: 346: 340: 326: 319: 311: 310: 306: 305: 299: 292: 291:External links 289: 287: 286: 279: 258:10.1.1.83.3275 240: 233: 226: 212: 205: 197: 195: 192: 189: 188: 175:(4): 223–234, 156: 155: 153: 150: 149: 148: 142: 137: 131: 126: 119: 116: 85: 82: 81: 80: 74: 68: 63: 56: 53: 13: 10: 9: 6: 4: 3: 2: 475: 464: 461: 459: 456: 455: 453: 443: 439: 436: 433: 430: 426: 423: 420:Alan Murta's 419: 416: 413: 410: 407: 404: 400: 396: 393: 389: 386: 382: 379: 375: 372: 368: 365: 361: 358: 354: 351: 347: 345: 341: 338: 334: 331: 327: 324: 320: 317: 313: 312: 308: 307: 303: 300: 298: 295: 294: 290: 284: 280: 276: 272: 268: 264: 259: 254: 250: 246: 241: 238: 234: 231: 227: 224: 220: 216: 213: 210: 206: 203: 202:Mark Overmars 199: 198: 193: 183: 178: 174: 170: 169: 161: 158: 151: 146: 143: 141: 138: 135: 132: 130: 127: 125: 122: 121: 117: 115: 113: 109: 105: 100: 98: 93: 91: 83: 78: 75: 72: 69: 67: 64: 62: 59: 58: 54: 48: 44: 42: 38: 34: 30: 26: 22: 19:are a set of 18: 392:poly_Boolean 248: 244: 194:Bibliography 172: 166: 160: 101: 94: 87: 16: 15: 219:Derick Wood 112:linear time 452:Categories 435:PolygonLib 55:Algorithms 253:CiteSeerX 35:, and in 438:Archived 425:Archived 385:Clippoly 378:Polypack 333:Archived 309:Software 275:16606107 118:See also 25:polygons 399:Clipper 371:Boolean 364:gfxpoly 90:bitmaps 415:GeoLib 273:  255:  271:S2CID 152:Notes 355:The 217:and 106:and 39:(in 422:GPC 263:doi 177:doi 37:EDA 33:CAD 454:: 269:. 261:. 249:25 247:. 221:, 171:, 114:. 31:, 405:. 352:. 339:. 325:. 318:. 277:. 265:: 186:. 179:: 173:2

Index

Boolean operations
polygons
computer graphics
CAD
EDA
integrated circuit

Greiner–Hormann clipping algorithm
Vatti clipping algorithm
Sutherland–Hodgman algorithm
Weiler–Atherton clipping algorithm
bitmaps
Sweep line algorithms
convex polygons
monotone polygons
linear time
Boolean algebra
Computational geometry
Constructive solid geometry
Geometry processing
General Polygon Clipper
Computational Geometry: Theory and Applications
doi
10.1016/0925-7721(92)90024-M
Mark Overmars
Algorithms for Reporting and Counting Geometric Intersections
Jon Louis Bentley
Derick Wood
An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles
An O(N log N) Algorithm for Boolean Mask Operations

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑