Theoretical and Practical Results on Straight Skeletons
- f Planar Straight-Line Graphs
Stefan Huber Martin Held
University of Salzburg Computer Science Department Salzburg, Austria
Stefan Huber, Martin Held: Straight Skeletons of PSLGs 1 / 24
Theoretical and Practical Results on Straight Skeletons of Planar - - PowerPoint PPT Presentation
Theoretical and Practical Results on Straight Skeletons of Planar Straight-Line Graphs Stefan Huber Martin Held University of Salzburg Computer Science Department Salzburg, Austria Stefan Huber, Martin Held: Straight Skeletons of PSLGs 1 /
University of Salzburg Computer Science Department Salzburg, Austria
Stefan Huber, Martin Held: Straight Skeletons of PSLGs 1 / 24
◮ [Aichholzer and Aurenhammer, 1998]: self-parallel wavefront propagation.
◮ Topological events: Stefan Huber, Martin Held: Straight Skeletons of PSLGs Definitions 2 / 24
◮ [Aichholzer and Aurenhammer, 1998]: self-parallel wavefront propagation.
◮ Topological events: ◮ edge events ◮ split events
◮ Notation: wavefront W(G, t), straight skeleton S(G), arcs and faces
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Definitions 2 / 24
◮ T (G) := t≥0 W(G, t) × {t} ◮ S(G) is the projection of valleys and ridges onto the ground plane. ◮ If one knows T (G) then one knows S(G), and vice versa.
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Definitions 3 / 24
◮ [Eppstein and Erickson, 1999]
17/11+ǫ) runtime, PSLGs as input, very complex, no implementation.
◮ [Cheng and Vigneron, 2007]
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Definitions 4 / 24
◮ [Eppstein and Erickson, 1999]
17/11+ǫ) runtime, PSLGs as input, very complex, no implementation.
◮ [Cheng and Vigneron, 2007]
◮ By F. Cacciola, shipped with CGAL, only polygons with holes, quadratic
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Definitions 4 / 24
◮ Motorcycle: moving point, constant velocity. ◮ Trace: left behind each motorcycle. ◮ Crash: motorcycle reaches another’s trace. ◮ Introduced by [Eppstein and Erickson, 1999]. ◮ Used by [Cheng and Vigneron, 2007] for their straight-skeleton algorithm.
◮ Motorcycle graph induced by a simple non-degenerate polygon.
◮ Additionally: wall: solid straight-line segment.
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Definitions 5 / 24
◮ [Cheng and Vigneron, 2007] excluded so-called vertex events. ◮ Basic requirement: M(G) should cover all reflex arcs of S(G).
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 6 / 24
◮ Walls: each edge of G is a wall. ◮ Motorcycles:
◮ (a), (b): We launch a motorcycle at every reflex vertex v of W(G, 0).
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 7 / 24
◮ Walls: each edge of G is a wall. ◮ Motorcycles:
◮ (a), (b): We launch a motorcycle at every reflex vertex v of W(G, 0). ◮ (c), (d): If m1, . . . , mk crash simultaneously at p such that a disk around p is
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 7 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 8 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 9 / 24
◮ Define for every wavefront edge a 3D slab based on M(G).
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 10 / 24
◮ Define for every wavefront edge a 3D slab based on M(G).
◮ Extends a result of [Eppstein and Erickson, 1999]. Their slabs are bounded
◮ Extends a result of [Cheng and Vigneron, 2007]. They considered simple
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Generalization of the motorcycle graph 10 / 24
◮ M(G, t): those parts of M(G) which have not been swept by the wavefront
◮ Extended wavefront W∗(G, t): the overlay of W(G, t) and M(G, t). ◮ We simulate the propagation of W∗(G, t).
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 11 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 12 / 24
t′∈[0,t] W∗(G, t′) consists of open convex faces.
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 13 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 14 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 15 / 24
◮ Switch events:
◮ A convex vertex does not meet a moving Steiner point twice. ◮ Hence, the number k of switch events is in O(nr), where r denotes the
◮ All other events can be processed in total O(n log n) time.
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 16 / 24
◮ Switch events:
◮ A convex vertex does not meet a moving Steiner point twice. ◮ Hence, the number k of switch events is in O(nr), where r denotes the
◮ All other events can be processed in total O(n log n) time.
◮ k ∈ O(n) for real word data, as confirmed by experiments. ◮ M(G) is computed by Moca [Huber and Held, 2011].
◮ O(n log n) runtime for practical input. Stefan Huber, Martin Held: Straight Skeletons of PSLGs Computing straight skeletons 16 / 24
102 103 104 105 106 102 103 104 105 106 10−5 10−4 10−3 10−2 102 103 104 105 106 10−5 10−4 10−3 10−2 102 103 104 105 106
0.17 to 1.7 · n2 log n µs 10 to 30 · n log n µs 10 to 30 · n log n µs 0.05 to 0.5 · n2 log n µs runtime in sec. /n log n runtime in sec. /n log n
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Experiments 17 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Experiments 18 / 24
◮ Theory:
◮ Generalized motorcycle graph to PSLGs. ◮ Extended important results of [Eppstein and Erickson, 1999] and
◮ An application: straight skeleton algorithm using graphics hardware.
◮ Implementation Bone:
◮ Handles arbitrary PSLG as input. ◮ Promising experimental results show an O(n log n) runtime for practical input. ◮ By a linear factor faster and more space-efficient than CGAL.
◮ Boost Bone to industrial strength. ◮ Employing MPFR (almost done). ◮ Employing CORE (in progress).
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Experiments 19 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Experiments 20 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs Experiments 21 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs 22 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs 23 / 24
Stefan Huber, Martin Held: Straight Skeletons of PSLGs 24 / 24