Implementierung von gewichteten Straigt Skeletons
Implementation of Weighted Straight Skeletons
Wissenschaftsdisziplinen
Informatik (80%); Mathematik (20%)
Keywords
-
Straight Skeleton,
Implementation,
Weights,
Planar Straight-Line Graph,
Mitered Offset,
Random Polygon
Ein Straight Skeleton ist eine Datenstruktur der algorithmischen Geometrie. Bei einem Poly- gon entsteht sie durch die Ausbreitung einer Wellenfront, die an allen Segmenten des Polygons zur gleichen Zeit startet und sich mit Einheitsgeschwindigkeit nach innen bewegt. Während dieser Ausbreitung können Segmente auf Länge Null schrumpfen oder das Polygon der Wel- lenfront kann sich in zwei Teile aufspalten. Als Straight Skeleton bezeichnet man die Pfade der Ecken dieser Wellenfront, die während deren Ausbreitung entstehen. Straight Skeletons weisen unzählige Anwendungen in Wissenschaft und Technik auf, wie etwa für Werkzeugweggenerie- rung, mathematische Untersuchungen von Origami oder der automatisierten Generierung von Dächern von Gebäuden auf der Basis von deren Grundrissen. Die Definition eines Straight Skeletons kann auf Geradensegmente in der Ebene verallge- meinert werden, welche sich höchstens in gemeinsamen Endpunkten schneiden. In den FWF Projekten L367-N15 und P25816-N15 haben wir dafür additiv und multiplikativ gewichtete Straight Skeletons entwickelt, bei denen diese Segmente zu unterschiedlichen Zeiten starten können und sich mit unterschiedlichen Geschwindigkeiten bewegen können. Ein entsprechen- der Algorithmus wurde von meinem Dissertanten Peter Palfrader als Prototyp implementiert. Damit ist nun etwa die Modellierung von Gebäudedächern möglich, bei denen die Dachflächen verschiedene Neigungen aufweisen und auf unterschiedlichen Höhen beginnen. In diesem Projekt wollen wir nun unsere Erfahrung mit der Implementierung von geometri- schen Algorithmen nutzen, um unsere Algorithmen zur Berechnung von gewichteten Straight Skeletons effizient und zuverlässig zu implementieren. Natürlich werden wir versuchen, Code zu entwickeln, welcher sowohl auf einer gewöhnlichen Gleitkommaarithmetik wie auch in Ver- bindung mit einer Bibliothek für exaktes geometrisches Rechnen (wie etwa CGAL) verwendet werden kann. Die von uns erstellte Implementierung wird unter der GPL der Allgemeinheit zur Verfügung stehen. Außerdem planen wir, unsere Implementierung CGAL zwecks Inklusion in deren Bibliothek anzubieten. Um ein umfassendes Testen unserer Implementierung zu erleichtern, wollen wir auch eine Datenbank mit zufälligen polygonalen Daten erstellen. Wir werden dafür auf frühere Arbeiten des Antragstellers zurückgreifen und Heuristiken für die Generierung von derartigen Daten entwickeln und implementieren. Diese Daten sowie die sie erzeugenden Implementierungen werden ebenfalls der Allgemeinheit zur Verfügung stehen. Obwohl der primäre Zweck das Testen unserer eigenen Implementierung ist, ist davon auszugehen, daß diese Daten auch in anderen praxisorientierten Disziplinen wie etwa GIS, CAD/CAM oder Architektur auf großes Interesse stoßen werden.
Unter Algorithmischer Geometrie versteht man ein Teilgebiet der (Theoretischen) Infor- matik, das sich mit der effizienten algorithmischen Lösung geometrisch formulierter Pro- bleme beschäftigt. Dabei ist der sogenannte Straight Skeleton ("geradliniges Skelett") eine wichtige Datenstruktur, da sich mit seiner Hilfe effiziente Lösung für etliche geometrische Fragestellungen erarbeiten lassen. Ein Straight Skeleton eines Polygons entsteht prozedural als das Ergebnis eines ge- dachten Schrumpfens des Polygons. Die Polyonkanten bewegen sich dabei parallel zum Ausgangspolygon mit gleicher konstanter Geschwindigkeit inwärts. Dadurch entsteht ein stetig kleiner werdendes Polygon, bei dem sich allerdings die Form ändern kann: Kanten können verschwinden, und mehrere Teilpolygone können entstehen. Der Straight Skeleton des Polygons entspricht nun der Vereinigung aller Pfade der Ecken des Polygons wäh- rend dieses Schrumpfens. Dieses Prinzip kann auch auf eine Menge von Geradensegmenten ("PSLG "), die sich nur in den Endpunkten schneiden, verallgemeinert werden. Wenn man nun zusätzlich multiplikative Gewichte bei den Geradensegmenten erlaubt, dann sind die Geschwindigkeiten der sich bewegenden Geradensegmente unterschiedlich and als Resultat erhält man ein (multiplikativ) gewichtetes Straight Skeleton. In diesem Projekt wurde ein Algorithmus zur Berechnung eines gewichteten Straight Skeleton eines PSLG detailliert entwickelt und in der Programmiersprache C++ implemen- tiert. Weiters wurde ein spezieller Algorithmus zur Lösung dieses Problems für Polygone implementiert, welche monoton sind. (Ein Polygon ist monoton relativ zu einer Gera- de ` falls jede Gerade senkrecht zu ` das Polygon entweder gar nicht oder nur in einem Punkt oder Geradensegment schneidet.) Die beiden resultierenden Implementierungen, Surfer2 und Monos, benutzen exakte Arithmetik, welche durch Einbindung der Com- putational Geometry Algorithms Library (CGAL) bereitgestellt wird. Sowohl Surfer2 wie auch Monos sind auf der Plattform GitHub unter der GPL Lizenz (Version 3) frei und unentgeltlich verfügbar. (GitHub ist ein Onlinedienst, welcher Speicher für Software- Entwicklungsprojekte inklusive Versionsverwaltung auf seinen Servern bereitstellt.) Weiters entwickelten wir umfangreiche Software-Werkzeuge zur Erstellung von poly- gonalen Testdaten. Beispielsweise können unsere Werkzeuge sternförmige oder monotone Polygone generieren sowie Polygone, deren Kanten alle parallel zu den beiden Koordina- tenachsen sind. Wir haben weiters Generatoren für einige bekannte fraktale Kurven (wie etwa die Kochsche Schneeflockenkurve) entwickelt. Auch diese Implementierungen - in den Programmsprachen C++ oder C - sind via GitHub unter der GPL Lizenz (Version 3) frei und unentgeltlich verfügbar. Musterdaten für die damit erzeugten Polygone sind auch in der neuen Salzburg Datenbank frei verfügbar: https://sbgdb.cs.sbg.ac.at/.
- Universität Salzburg - 100%
Research Output
- 20 Zitationen
- 11 Publikationen
- 3 Datasets & Models
-
2019
Titel Weighted Voronoi Diagrams in the Maximum Norm DOI 10.1142/s0218195919500079 Typ Journal Article Autor Eder G Journal International Journal of Computational Geometry & Applications Seiten 239-250 Link Publikation -
2019
Titel Recognizing Geometric Trees as Positively Weighted Straight Skeletons and Reconstructing Their Input DOI 10.1142/s0218195919500080 Typ Journal Article Autor Eder G Journal International Journal of Computational Geometry & Applications Seiten 251-267 Link Publikation -
2018
Titel Straight Skeletons and Mitered Offsets of Polyhedral Terrains in 3D DOI 10.14733/cadconfp.2018.37-41 Typ Conference Proceeding Abstract Autor Held M Seiten 37-41 Link Publikation -
2018
Titel Skeletal Structures for Modeling Complex Chamfers and Fillets DOI 10.14733/cadconfp.2018.42-46 Typ Conference Proceeding Abstract Autor Held M Seiten 42-46 Link Publikation -
2018
Titel Min-/Max-Volume Roofs Induced by Bisector Graphs of Polygonal Footprints of Buildings DOI 10.1142/s0218195918500097 Typ Journal Article Autor Eder G Journal International Journal of Computational Geometry & Applications Seiten 309-340 -
2018
Titel Assessment of Parametric Assembly Models Based on CAD Quality Dimensions DOI 10.14733/cadaps.2019.628-653 Typ Journal Article Autor Otey J Journal Computer-Aided Design and Applications Seiten 628-653 Link Publikation -
2018
Titel Skeletal Structures for Modeling Generalized Chamfers and Fillets in the Presence of Complex Miters DOI 10.14733/cadaps.2019.620-627 Typ Journal Article Autor Held M Journal Computer-Aided Design and Applications Link Publikation -
2018
Titel Straight Skeletons and Mitered Offsets of Polyhedral Terrains in 3D DOI 10.14733/cadaps.2019.611-619 Typ Journal Article Autor Held M Journal Computer-Aided Design and Applications Seiten 611-619 -
2020
Titel On Implementing Straight Skeletons: Challenges and Experiences Typ Conference Proceeding Abstract Autor Eder G. Konferenz SoCG Seiten 38:1--38:16 Link Publikation -
2020
Titel On Implementing Straight Skeletons: Challenges and Experiences Typ Conference Proceeding Abstract Autor Eder G. Konferenz SoCG -
2020
Titel Salzburg Database of Polygonal Data: Polygons and Their Generators DOI 10.1016/j.dib.2020.105984 Typ Journal Article Autor Eder G Journal Data in Brief Seiten 105984 Link Publikation
-
2020
Link
Titel Salzburg Database Typ Database/Collection of data Öffentlich zugänglich Link Link -
2020
Link
Titel Salzburg Database of Polygonal Data DOI 10.5281/zenodo.3784788 Typ Database/Collection of data Öffentlich zugänglich Link Link -
2020
Link
Titel Salzburg Database of Polygonal Data DOI 10.5281/zenodo.3784789 Typ Database/Collection of data Öffentlich zugänglich Link Link