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

Modeling two-dimensional and three-dimensional objects is an important theme in computer graphics. Two main types of models are used in both cases: boundary representations, which represent the surface of an object explicitly but represent its interior only implicitly, and constructive solid geometry representations, which model a complex object, surface and interior together, as a boolean combination of simpler objects. Because neither representation is good for all applications, conversion between the two is often necessary.We consider the problem of converting boundary representations of polyhedral objects into constructive solid geometry (CSG) representations. The CSG representations for a polyhedronP are based on the half-spaces supporting the faces ofP. 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 practicalO(n logn) algorithm for doing this boundary-to-CSG conversion for a simple polygon ofn sides. We also prove that such nice formulae do not always exist for general polyhedra in three dimensions.

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

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

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

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

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

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

[7]  F. Frances Yao,et al.  Computational Geometry , 1991, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.

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

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

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

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

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

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

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

[15]  Leonidas J. Guibas,et al.  Linear-time algorithms for visibility and shortest path problems inside triangulated simple polygons , 1987, Algorithmica.

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

[17]  D. T. Lee,et al.  On finding the convex hull of a simple polygon , 1983, International Journal of Computer & Information Sciences.

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

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

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

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

[22]  Marc H. Brown,et al.  Algorithm animation , 1988 .

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

[24]  Myers An Industrial Perspective on Solid Modeling , 1982, IEEE Computer Graphics and Applications.

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

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

[27]  John Hershberger,et al.  Color and sound in algorithm animation , 1992, Computer.

[28]  Marc H. Brown,et al.  Zeus: a system for algorithm animation and multi-view editing , 1991, Proceedings 1991 IEEE Workshop on Visual Languages.

[29]  S. L. Hurst Digital Logic and Computer Design , 1980 .

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