An efficient algorithm for finding the CSG representation of a simple polygon

We consider the problem of converting boundary representations of polyhedral objects into constructive-solid-geometry (CSG) representations. The CSG representations for a polyhedron P are based on the half-spaces supporting the faces of P. For certain kinds of polyhedra this problem is equivalent to the corresponding problem for simple polygons in the plane. We give a new proof that the interior of each simple polygon can be represented by a monotone boolean formula based on the half-planes supporting the sides of the polygon and using each such half-plane only once. Our main contribution is an efficient and practical O(n log n) algorithm for doing this boundary-to-CSG conversion for a simple polygon of n sides. We also prove that such nice formulæ do not always exist for general polyhedra in three dimensions.

[1]  ARISTIDES A. G. REQUICHA,et al.  Representations for Rigid Solids: Theory, Methods, and Systems , 1980, CSUR.

[2]  Herbert Edelsbrunner,et al.  Algorithms in Combinatorial Geometry , 1987, EATCS Monographs in Theoretical Computer Science.

[3]  Theodosios Pavlidis,et al.  Analysis of set patterns , 1968, Pattern Recognit..

[4]  Gilchrist,et al.  GMSolid: Interactive Modeling for Design and Analysis of Solids , 1982, IEEE Computer Graphics and Applications.

[5]  Brown,et al.  PADL-2: A Technical Summary , 1982, IEEE Computer Graphics and Applications.

[6]  Avraham A. Melkman,et al.  On-Line Construction of the Convex Hull of a Simple Polyline , 1987, Inf. Process. Lett..

[7]  Wayne Tiller,et al.  Rational B-Splines for Curve and Surface Representation , 1983, IEEE Computer Graphics and Applications.

[8]  Alan E. Middleditch,et al.  Convex Decomposition of Simple Polygons , 1984, TOGS.

[9]  J. O'Rourke Art gallery theorems and algorithms , 1987 .

[10]  Martti Mäntylä,et al.  Introduction to Solid Modeling , 1988 .

[11]  Aristides A. G. Requicha,et al.  The PADL-1.0/2 system for defining and displaying solid objects , 1978, SIGGRAPH.

[12]  F. Frances Yao,et al.  Finding the Convex Hull of a Simple Polygon , 1983, J. Algorithms.

[13]  Leonidas J. Guibas,et al.  A kinetic framework for computational geometry , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[14]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[15]  Kurt Mehlhorn,et al.  Sorting Jordan sequences in linear time , 1985, SCG '85.

[16]  John Woodwark,et al.  GRAPHICAL INPUT TO A BOOLEAN SOLID MODELLER , 1982 .

[17]  F. Frances Yao,et al.  Binary partitions with applications to hidden surface removal and solid modelling , 1989, SCG '89.

[18]  Alejandro A. Schäffer,et al.  Convex Hulls of Piecewise-Smooth Jordan Curves , 1987, J. Algorithms.

[19]  David Avis,et al.  A Linear Algorithm for Finding the Convex Hull of a Simple Polygon , 1979, Inf. Process. Lett..

[20]  B. Chazelle Computational geometry and convexity , 1980 .

[21]  W. Randolph Franklin Polygon properties calculated from the vertex neighborhoods , 1987, SCG '87.

[22]  M. Morris Mano,et al.  Digital Logic and Computer Design , 1979 .