Computing Straight Skeletons and Motorcycle Graphs: Theory and Practice

The straight skeleton is a geometric structure that is similar to generalizedVoronoi diagrams. Straight skeletons were introduced to the field of computational geometry one and a half decades ago. Since then many industrial and academical applications emerged, such as the computation of mitered offset curves, automatic roof construction, solving fold-and-cut problems and the reconstruction of surfaces, to name the most prominent ones. However, there is a significant gap between the most efficient straight-skeleton algorithms and implementations, on one hand, and the best known lower runtime bounds on the other hand. The primary goal of this thesis is the development of an algorithm that is suitable for implementation and efficient in terms of time and space in order to make the advantages of straight skeletons available to real-world applications. We start with investigations concerning upper and lower bounds on the number of socalled flip events that occur in the triangulation-based straight-skeleton algorithm by Aichholzer and Aurenhammer. In particular, we prove the existence of Steiner triangulations that are free of flip events. This result motivates a novel straight-skeleton algorithm for non-degenerate simple polygons that is based on the so-called motorcycle graph. In order to extend this algorithm to arbitrary planar straight-line graphs, we carefully generalize the motorcycle graph. This generalization leads to practical and theoretical applications: Firstly, we obtain an extension of the alternative characterization of straight skeletons by Cheng and Vigneron to planar straight-line graphs. Secondly, this characterization motivates a straight-skeleton algorithm that is based on 3D graphics hardware. Thirdly, the generalized motorcycle graph leads to a wavefront-type straight-skeleton algorithm for arbitrary planar straight-line graphs. Our algorithm is easy to implement, has a theoretical worstcase time complexity of O(n2 log n) and operates in O(n) space. Extensive runtime tests with our implementation Bone exhibit an actual runtime of O(n log n) on a database containing more than 13 500 datasets of different characteristics. In practice, this constitutes an improvement of a linear factor in time and space compared to the current state-of-the-art straight-skeleton code, which is shipped with the CGAL library. In particular, Bone performs up to 100 times faster than the current CGAL code on datasets with a few thousand vertices, requires significant less memory and accepts more general input. Our straight-skeleton algorithm motivates the investigation of motorcycle graphs and their practical computation. We start with stochastic considerations of the average length of a motorcycles trace. The results obtained motivate a simple yet fast algorithm that employs geometric hashing. Runtime tests with our implementation Moca exhibit an O(n log n) runtime on the vast majority of our datasets. Finally, we revisit the geometric relation of straight skeletons and motorcycle graph. We present an algorithm that constructs planar straight-line graphs whose straight skeleton approximates any given motorcycle graph to an arbitrary precision. This algorithm finally leads to a P-completeness proof for straight skeletons of polygons with holes that is based on the P-completeness of motorcycle graphs. A C K N O W L E D G M E N T S I would like to thank my parents, Stefan and Gabriele, for their unlimited and unconditional support throughout my entire life. Special thanks go to my girlfriend Christina for her constant support and understanding during my doctoral studies. I also thank my supervisor Martin Held for his guidance and his extensive support. Further, I thank my colleagues and co-workers. In particular I thank Gerhard Mitterlechner and Roland Kwitt for their proofreading and valuable discussions. Eventually, I thank theAustrian Science Fund (FWF) for supporting this thesis by funding project no. L367-N15.

[1]  David Eppstein,et al.  Raising roofs, crashing cycles, and playing pool: applications of a data structure for finding pairwise interactions , 1998, SCG '98.

[2]  Erik D. Demaine,et al.  Hinged Dissection of Polypolyhedra , 2005, WADS.

[3]  Sabine Coquillart,et al.  3D Reconstruction of Complex Polyhedral Shapes from Contours using a Simplified Generalized Voronoi Diagram , 1996, Comput. Graph. Forum.

[4]  Jorge Urrutia,et al.  Galleries, Light Matchings and Visibility Graphs , 1989, WADS.

[5]  Martin Held,et al.  Approximating a Motorcycle Graph by a Straight Skeleton , 2011, CCCG.

[6]  Bernard Chazelle Triangulating a simple polygon in linear time , 1991, Discret. Comput. Geom..

[7]  Kira Vyatkina Linear Axis for Planar Straight Line Graphs , 2009, CATS.

[8]  Bernard Chazelle,et al.  Cutting hyperplanes for divide-and-conquer , 1993, Discret. Comput. Geom..

[9]  Luc Van Gool,et al.  Procedural modeling of buildings , 2006, ACM Trans. Graph..

[10]  Martin Held,et al.  On the Computational Geometry of Pocket Machining , 1991, Lecture Notes in Computer Science.

[11]  Erik D. Demaine,et al.  Geometric folding algorithms - linkages, origami, polyhedra , 2007 .

[12]  Gábor Lukács,et al.  Pocket machining based on contour-parallel tool paths generated by means of proximity maps , 1994, Comput. Aided Des..

[14]  Francis Y. L. Chin,et al.  Finding the Medial Axis of a Simple Polygon in Linear Time , 1995, ISAAC.

[15]  Dinesh Manocha,et al.  Fast computation of generalized Voronoi diagrams using graphics hardware , 1999, SIGGRAPH.

[16]  Vladlen Koltun Almost tight upper bounds for lower envelopes in higher dimensions , 1993, Proceedings of 1993 IEEE 34th Annual Foundations of Computer Science.

[17]  Martin Held,et al.  Author's Personal Copy Computer-aided Design Topology-oriented Incremental Computation of Voronoi Diagrams of Circular Arcs and Straight-line Segments , 2022 .

[18]  Remco C. Veltkamp,et al.  A Straight Skeleton Approximating the Medial Axis , 2004, ESA.

[19]  Martin Held,et al.  Motorcycle graphs: Stochastic properties motivate an efficient yet simple implementation , 2011, JEAL.

[20]  Andrew M. Day,et al.  Automatically generating large urban environments based on the footprint data of buildings , 2003, SM '03.

[21]  Sariel Har-Peled,et al.  Constructing Planar Cuttings in Theory and Practice , 2000, SIAM J. Comput..

[22]  Rolf Klein,et al.  Concrete and Abstract Voronoi Diagrams , 1990, Lecture Notes in Computer Science.

[23]  Rolf Klein,et al.  Abstract Voronoi diagrams revisited , 2009, Comput. Geom..

[24]  Chee-Keng Yap,et al.  AnO(n logn) algorithm for the voronoi diagram of a set of simple curve segments , 1987, Discret. Comput. Geom..

[25]  Bettina Speckmann,et al.  Shooting Permanent Rays among Disjoint Polygons in the Plane , 2012, SIAM J. Comput..

[26]  David Eppstein,et al.  Motorcycle Graphs: Canonical Quad Mesh Partitioning , 2008, Comput. Graph. Forum.

[27]  L. Kucera,et al.  Randomized incremental construction of abstract Voronoi diagrams , 1993 .

[28]  Martin Held,et al.  Computing straight skeletons of planar straight-line graphs based on motorcycle graphs , 2010, CCCG.

[29]  Antoine Vigneron,et al.  Motorcycle Graphs and Straight Skeletons , 2002, SODA '02.

[30]  Martin Held,et al.  Theoretical and practical results on straight skeletons of planar straight-line graphs , 2011, SoCG '11.

[31]  Kira Vyatkina On the Structure of Straight Skeletons , 2008, 2008 International Conference on Computational Sciences and Its Applications.

[32]  Sven Havemann,et al.  Generative mesh modeling , 2005 .

[33]  Joseph S. B. Mitchell,et al.  Folding flat silhouettes and wrapping polyhedral packages: new results in computational origami , 1999, SCG '99.

[34]  Erik D. Demaine,et al.  Folding and Cutting Paper , 1998, JCDCG.

[35]  Martin Held,et al.  VRONI: An engineering approach to the reliable and efficient computation of Voronoi diagrams of points and line segments , 2001, Comput. Geom..

[36]  H. James Hoover,et al.  Limits to parallel computation , 1995 .

[37]  Fernando Cacciola A CGAL implementation of the Straight Skeleton of a Simple 2D Polygon with Holes , 2004 .

[38]  Remco C. Veltkamp,et al.  Straight line skeleton in linear time, topologically equivalent to the medial axis , 2004 .

[39]  Asish Mukhopadhyay,et al.  Computing the straight skeleton of a monotone polygon in O(n log n) time , 2010, CCCG.

[40]  Martin Held,et al.  A smooth spiral tool path for high speed machining of 2D pockets , 2009, Comput. Aided Des..

[41]  Chee-Keng Yap,et al.  Robust Geometric Computation , 2016, Encyclopedia of Algorithms.

[42]  Mirela Tanase-Avatavului,et al.  Shape decomposition and retrieval , 2005 .

[43]  Martin Held,et al.  On Computing Voronoi Diagrams of Convex Polyhedra by Means of Wavefront Propagation , 1994, CCCG.

[44]  David Eppstein,et al.  Fast hierarchical clustering and other applications of dynamic closest pairs , 1999, SODA '98.

[45]  Leonidas J. Guibas,et al.  Ray Shooting in Polygons Using Geodesic Triangulations , 1991, ICALP.

[46]  Sang C. Park,et al.  Mitered offset for profile machining , 2003, Comput. Aided Des..

[47]  Peter Wonka,et al.  Interactive architectural modeling with procedural extrusions , 2011, TOGS.