Implementation of Weighted Straight Skeletons
Implementation of Weighted Straight Skeletons
Disciplines
Computer Sciences (80%); Mathematics (20%)
Keywords
-
Straight Skeleton,
Implementation,
Weights,
Planar Straight-Line Graph,
Mitered Offset,
Random Polygon
The straight skeleton of a simple polygon in the plane is defined by considering the propagation of a so-called wavefront: Each edge of the polygon emits a wavefront edge moving towards the polygons interior in a self-parallel manner. All edges move at unit speed and start to move at the same time. During this propagation process, the topology of the wavefront changes due to self-interaction: An edge of the wavefront may shrink to zero length and thus vanish, or a vertex of the wavefront may move into the interior of a non-incident wavefront edge, thus splitting the wavefront polygon into two sub-polygons. The straight skeleton is the union of the traces of wavefront vertices over the entire wavefront propagation. Straight skeletons have diverse applications such as in tool-path generation, mathematical origami, automated roof design for buildings, and terrain generation. The definition of a straight skeleton can be extended to a planar straight-line graph, i.e., to a collection of straight-line segments in the plane which may not intersect except at common end points. In the FWF Projects L367-N15 and P25816-N15 we have studied additively and multiplicatively weighted straight skeletons of planar straight-line graphs where the input edges (1) are allowed to move at different speeds and (2) do not need to start moving at the same time. As a result, we get an automated generation of roofs of buildings where the individual roof facets have different inclinations and may start at different heights. My current PhD student Peter Palfrader cast our straight-skeleton algorithm into a proof-of-concept implementation. We propose to use our vast experience with the implementation of geometric algorithms for implementing our algorithm for computing weighted straight skeletons in a reliable and efficient way. We will strive to come up with code that can be either run on a conventional floating-point arithmetic or in conjunction with an EGC library, e.g., CGAL (Computational Geometry Algorithms Library). The resulting code will be made available to the general public under an open re-use license (GPL). In addition, we intend to offer it to CGAL for inclusion in their library. In order to facilitate a large-scale testing of our implementation we will get back to prior work of the applicant on the generation of pseudo-random polygons: We will devise and implement heuristics for generating polygonal test data at various ranges of complexity. While our primary focus is on getting input data for our own tests, the availability of such a test suite can be expected to foster future applied work by researchers and practitioners in computational geometry and its practical application fields, like GIS, CAD/CAM or architecture.
Computational geometry is a field of (theoretical) computer science which is concerned with the efficient solution of problems that bear a geometric flavor. Straight skeletons form a key data structure of computational geometry; they provide the algorithmic basis for efficient solutions to a variety of geometric problems in diverse fields of application, ranging from tool-path planning in CAD/CAM to shape reconstruction in medical imaging, roof modeling in architecture, the computation of centerlines of roads and rivers in geographic information systems, and even to computing so-called crease patterns in mathematical origami. Roughly, the straight skeleton of a simple polygon is defined by a wavefront propagation process. That is, one considers a shrinking process by which each polygon edge moves inwards at unit speed and in a self-parallel fashion. This moving wavefront mimics the input polygon, but its shape changes over time: edges may vanish and the wavefront may be split into parts. The straight skeleton is defined as the set of loci traced out by the vertices of the wavefront. The same principle can also be applied to planar straight-line graphs (PSLGs), i.e., to a set of straight-line segments in the plane that do not intersect each other in the interior. In this project we worked out the mathematical and algorithmical details of multi- plicatively weighted straight skeletons of PSLGs and devised an implementation in the programming language C++. Furthermore we developed and implemented an algorithm geared towards straight skeletons of monotone polygons. (A polygon is called monotone relative to a line ` if every line perdendicular to ` either does not intersect the polygon at all or if it intersects it in a point or single line segment.) The resulting implementa- tions, which are named Surfer2 and Monos, are based on exact arithmetic provided by the Computational Geometry Algorithms Library (Cgal). Both Surfer2 and Monos are provided unter the GPL license (version 3) free of charge on the platform GitHub. (GitHub is an online service that offers storage space and a version control system for software projects.) In addition we developed and implemented various software tools for generating polyg- onal test data. For instance, our tools are able to generate star-shaped and monotone polygons, or polygons whose edges are parallel to the two coordinate axes. Furthermore we implemented generators for some well-known fractal curves such as the Koch snowflake. All implementations of our generators were done in the programming languages C++ or C. They are provided unter the GPL license (version 3) free of charge on the platform GitHub. Sample polygonal datasets can be obtained directly (and for free) from the new Salzburg Database: https://sbgdb.cs.sbg.ac.at/.
- Universität Salzburg - 100%
Research Output
- 20 Citations
- 11 Publications
- 3 Datasets & models
-
2018
Title Straight Skeletons and Mitered Offsets of Polyhedral Terrains in 3D DOI 10.14733/cadconfp.2018.37-41 Type Conference Proceeding Abstract Author Held M Pages 37-41 Link Publication -
2018
Title Skeletal Structures for Modeling Complex Chamfers and Fillets DOI 10.14733/cadconfp.2018.42-46 Type Conference Proceeding Abstract Author Held M Pages 42-46 Link Publication -
2020
Title On Implementing Straight Skeletons: Challenges and Experiences Type Conference Proceeding Abstract Author Eder G. Conference SoCG Pages 38:1--38:16 Link Publication -
2020
Title On Implementing Straight Skeletons: Challenges and Experiences Type Conference Proceeding Abstract Author Eder G. Conference SoCG -
2020
Title Salzburg Database of Polygonal Data: Polygons and Their Generators DOI 10.1016/j.dib.2020.105984 Type Journal Article Author Eder G Journal Data in Brief Pages 105984 Link Publication -
2018
Title Assessment of Parametric Assembly Models Based on CAD Quality Dimensions DOI 10.14733/cadaps.2019.628-653 Type Journal Article Author Otey J Journal Computer-Aided Design and Applications Pages 628-653 Link Publication -
2018
Title Skeletal Structures for Modeling Generalized Chamfers and Fillets in the Presence of Complex Miters DOI 10.14733/cadaps.2019.620-627 Type Journal Article Author Held M Journal Computer-Aided Design and Applications Link Publication -
2018
Title Straight Skeletons and Mitered Offsets of Polyhedral Terrains in 3D DOI 10.14733/cadaps.2019.611-619 Type Journal Article Author Held M Journal Computer-Aided Design and Applications Pages 611-619 -
2018
Title Min-/Max-Volume Roofs Induced by Bisector Graphs of Polygonal Footprints of Buildings DOI 10.1142/s0218195918500097 Type Journal Article Author Eder G Journal International Journal of Computational Geometry & Applications Pages 309-340 -
2019
Title Weighted Voronoi Diagrams in the Maximum Norm DOI 10.1142/s0218195919500079 Type Journal Article Author Eder G Journal International Journal of Computational Geometry & Applications Pages 239-250 Link Publication -
2019
Title Recognizing Geometric Trees as Positively Weighted Straight Skeletons and Reconstructing Their Input DOI 10.1142/s0218195919500080 Type Journal Article Author Eder G Journal International Journal of Computational Geometry & Applications Pages 251-267 Link Publication
-
2020
Link
Title Salzburg Database Type Database/Collection of data Public Access Link Link -
2020
Link
Title Salzburg Database of Polygonal Data DOI 10.5281/zenodo.3784788 Type Database/Collection of data Public Access Link Link -
2020
Link
Title Salzburg Database of Polygonal Data DOI 10.5281/zenodo.3784789 Type Database/Collection of data Public Access Link Link