{'fraction_non_alphanumeric': 0.019675925925925927, 'fraction_numerical': 0.005208333333333333, 'mean_word_length': 4.941580756013746, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Theoretical and practical results on straight skeletons of planar straight-line graphs

We study straight skeletons and make both theoretical and practical contributions which support new approaches to the computation of straight skeletons of arbitrary planar straight-line graphs (PSLGs). We start with an adequate extension of the concept of motorcycle graphs to PSLGs, with motorcycles starting at the reflex vertices of a PSLG, which allows us to generalize well-known results on the relation between the straight skeleton and the motorcycle graph to arbitrary PSLGs: the edges of the motorcycle graph cover a specific subset of the edges of the straight skeleton, and they form the basis of 3D slabs such that the projection of the lower envelope of those slabs to the plane forms the straight skeleton. As an immediate application we sketch how to use a graphics hardware for computing (approximate) straight skeletons of PSLGs. Further, we present and analyze a novel wavefront-type algorithm which bridges the current gap between the theory and practice of straight-skeleton computations. Our algorithm handles arbitrary PSLGs, is easy to implement, and is fast enough to handle complex data: it can be expected to run in O(n log n) time in practice for an n-vertex PSLG; its worst-case complexity is O(n2 log n). Extensive experimental results confirm an average runtime of 20 n log n µs on a standard PC for virtually all of our 13500 datasets of different characteristics. As also confirmed by our experiments, this constitutes an average gain in performance by a multiplicative factor of n, or at least one to two orders of magnitude, relative to the speed of the implementation provided by CGAL for closed polygons.