In
geometry
Geometry (; ) is a branch of mathematics concerned with properties of space such as the distance, shape, size, and relative position of figures. Geometry is, along with arithmetic, one of the oldest branches of mathematics. A mathematician w ...
, a straight skeleton is a method of representing a
polygon
In geometry, a polygon () is a plane figure made up of line segments connected to form a closed polygonal chain.
The segments of a closed polygonal chain are called its '' edges'' or ''sides''. The points where two edges meet are the polygon ...
by a
topological skeleton
In shape analysis, skeleton (or topological skeleton) of a shape is a thin version of that shape that is equidistant to its boundaries. The skeleton usually emphasizes geometrical and topological properties of the shape, such as its connectivit ...
. It is similar in some ways to the
medial axis
The medial axis of an object is the set of all points having more than one closest point on the object's boundary. Originally referred to as the topological skeleton, it was introduced in 1967 by Harry Blum as a tool for biological shape reco ...
but differs in that the skeleton is composed of straight line segments, while the medial axis of a polygon may involve parabolic curves. However, both are
homotopy-equivalent
In topology, two continuous functions from one topological space to another are called homotopic (from and ) if one can be "continuously deformed" into the other, such a deformation being called a homotopy ( ; ) between the two functions. A ...
to the underlying polygon.
[.]
Straight skeletons were first defined for simple polygons by ,
[.] and generalized to
planar straight-line graphs (PSLG) by .
In their interpretation as projection of roof surfaces, they are already extensively discussed by .
Definition
The straight skeleton of a polygon is defined by a continuous shrinking process in which the edges of the polygon are moved inwards parallel to themselves at a constant speed. As the edges move in this way, the vertices where pairs of edges meet also move, at speeds that depend on the angle of the vertex. If one of these moving vertices collides with a nonadjacent edge, the polygon is split in two by the collision, and the process continues in each part. The straight skeleton is the set of curves traced out by the moving vertices in this process.
In the illustration the top figure shows the shrinking process and the middle figure depicts the straight skeleton in blue.
Algorithms
The straight skeleton may be computed by simulating the shrinking process by which it is defined; a number of variant algorithms for computing it have been proposed, differing in the assumptions they make on the input and in the
data structure
In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships amo ...
s they use for detecting combinatorial changes in the input polygon as it shrinks.
The following algorithms consider an input that forms a polygon, a
polygon with holes, or a PSLG. For a polygonal input we denote the number of vertices by ''n'' and the number of reflex (concave, i.e., angle greater than ) vertices by ''r''. If the input is a PSLG then we consider the initial wavefront structure, which forms a set of polygons, and again denote by ''n'' the number of vertices and by ''r'' the number of reflex vertices w.r.t. the propagation direction. Most of the algorithms listed here are designed and analyzed in the
real RAM
In computing, especially computational geometry, a real RAM (random-access machine) is a mathematical model of a computer that can compute with exact real numbers instead of the binary fixed-point or floating-point numbers used by most actual co ...
model of computation.
*Aichholzer et al.
showed how to compute straight skeletons of PSLGs in time O(''n''
3 log ''n''), or more precisely time O((''n''
2+''f'') log ''n''), where ''n'' is the number of vertices of the input polygon and ''f'' is the number of flip events during the construction. The best known bound for ''f'' is O(''n''
3).
*An algorithm with a worst case running time in O(''nr'' log n), or simply O(''n''
2 log n), is given by , who argue that their approach is likely to run in near-linear time for many inputs.
*Petr Felkel and Štěpán Obdržálek designed an algorithm for simple polygons that is said to have an efficiency of O(''nr'' + ''n'' log ''r''). However, it has been shown that their algorithm is incorrect.
*By using data structures for the
bichromatic closest pair problem,
Eppstein
Eppstein is a town in the Main-Taunus-Kreis, in Hesse, Germany. Eppstein lies west of Frankfurt am Main, around 12 km north east of the state capital Wiesbaden, and is at the edge of the Taunus mountains. The ruins of the Eppstein castle is ...
and Erickson showed how to construct straight skeleton problems using a linear number of closest pair data structure updates. A closest pair data structure based on
quadtree
A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are the two-dimensional analog of octrees and are most often used to partition a two-dimensional space by recursively subdividing it into four ...
s provides an O(''nr'' + ''n'' log ''n'') time algorithm, or a significantly more complicated data structure leads to the better asymptotic time bound , or more simply , where ε is any constant greater than zero.
[.] This remains the best worst-case time bound known for straight skeleton construction with unrestricted inputs, but is complicated and has not been implemented.
*For
simple polygon
In geometry, a simple polygon is a polygon that does not Intersection (Euclidean geometry), intersect itself and has no holes. That is, it is a Piecewise linear curve, piecewise-linear Jordan curve consisting of finitely many line segments. The ...
s in
general position
In algebraic geometry and computational geometry, general position is a notion of genericity for a set of points, or other geometric objects. It means the ''general case'' situation, as opposed to some more special or coincidental cases that a ...
, the problem of straight skeleton construction is easier. Cheng, Mencel, and Vigneron showed how to compute the straight skeleton of simple polygons in time O(''n'' log ''n'' log ''r'' + ''r''
4/3 + ε).
[
.] In the worst case, ''r'' may be on the order of ''n'', in which case this time bound may be simplified to O(''n''
4/3+ε). If the vertices of the input polygon have O(log n)-bit rational coordinates, their algorithm can be improved to run in O(''n'' log ''n'') time, even if the input polygon is not in
general position
In algebraic geometry and computational geometry, general position is a notion of genericity for a set of points, or other geometric objects. It means the ''general case'' situation, as opposed to some more special or coincidental cases that a ...
.
*A
monotone polygon
In geometry, a polygon in the plane is called monotone with respect to a straight line , if every line orthogonal to intersects the boundary of at most twice.
Similarly, a polygonal chain is called monotone with respect to a straight line ...
with respect to a line ''L'' is a polygon with the property that every line orthogonal to ''L'' intersects the polygon in a single interval. When the input is a monotone polygon, its straight skeleton can be constructed in time O(''n'' log
2 ''n'').
Applications
Each point within the input polygon can be lifted into three-dimensional space by using the time at which the shrinking process reaches that point as the z-coordinate of the point. The resulting three-dimensional surface has constant height on the edges of the polygon, and rises at constant slope from them except for the points of the straight skeleton itself, where surface patches at different angles meet. In this way, the straight skeleton can be used as the set of ridge lines of a building roof, based on walls in the form of the initial polygon.
[.] The bottom figure in the illustration depicts a surface formed from the straight skeleton in this way.
Demaine, Demaine and Lubiw used the straight skeleton as part of a technique for folding a sheet of paper so that a given polygon can be cut from it with a single straight cut (the
fold-and-cut theorem), and related
origami
) is the Japanese art of paper folding. In modern usage, the word "origami" is often used as an inclusive term for all folding practices, regardless of their culture of origin. The goal is to transform a flat square sheet of paper into a ...
design problems.
[.]
Barequet et al. use straight skeletons in an algorithm for finding a three-dimensional surface that interpolates between two given
polygonal chain
In geometry, a polygonal chain is a connected series of line segments. More formally, a polygonal chain is a curve specified by a sequence of points (A_1, A_2, \dots, A_n) called its vertices. The curve itself consists of the line segments co ...
s.
[.]
Tănase and Veltkamp propose to decompose
concave polygon
A simple polygon that is not convex is called concave, non-convex or reentrant. A concave polygon will always have at least one reflex interior angle—that is, an angle with a measure that is between 180° degrees and 360° degrees exclusive.
...
s into unions of convex regions using straight skeletons, as a preprocessing step for shape matching in image processing.
[.]
Bagheri and Razzazi use straight skeletons to guide vertex placement in a
graph drawing
Graph drawing is an area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive two-dimensional depictions of graph (discrete mathematics), graphs arising from applications such ...
algorithm in which the graph drawing is constrained to lie inside a polygonal boundary.
[.]
The straight skeleton can also be used to construct an
offset curve of a polygon, with
mitered corners, analogously to the construction of an offset curve with rounded corners formed from the medial axis. Tomoeda and Sugihara apply this idea in the design of signage, visible from wide angles, with an illusory appearance of depth. Similarly, Asente and Carr use straight skeletons to design
color gradient
In color science, a color gradient (also known as a color ramp or a color progression) specifies a range of position-dependent colors, usually used to fill a region.
In assigning colors to a set of values, a gradient is a continuous colormap, ...
s that match letter outlines or other shapes.
As with other types of skeleton such as the
medial axis
The medial axis of an object is the set of all points having more than one closest point on the object's boundary. Originally referred to as the topological skeleton, it was introduced in 1967 by Harry Blum as a tool for biological shape reco ...
, the straight skeleton can be used to collapse a two-dimensional area to a simplified one-dimensional representation of the area. For instance, Haunert and Sester describe an application of this type for straight skeletons in
geographic information system
A geographic information system (GIS) consists of integrated computer hardware and Geographic information system software, software that store, manage, Spatial analysis, analyze, edit, output, and Cartographic design, visualize Geographic data ...
s, in finding the centerlines of roads.
Every
tree
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
with no
degree-two vertices can be realized as the straight skeleton of a
convex polygon
In geometry, a convex polygon is a polygon that is the boundary of a convex set. This means that the line segment between two points of the polygon is contained in the union of the interior and the boundary of the polygon. In particular, it is ...
. The
convex hull
In geometry, the convex hull, convex envelope or convex closure of a shape is the smallest convex set that contains it. The convex hull may be defined either as the intersection of all convex sets containing a given subset of a Euclidean space, ...
of the roof shape corresponding to this straight skeleton forms a
Steinitz realization of the
Halin graph
In graph theory, a Halin graph is a type of planar graph, constructed by connecting the leaves of a tree (graph theory), tree into a cycle.
The tree must have at least four vertices, none of which has exactly two neighbors; it should be drawn in ...
formed from the tree by connecting its leaves in a cycle.
Higher dimensions
Barequet et al. defined a version of straight skeletons for three-dimensional
polyhedra
In geometry, a polyhedron (: polyhedra or polyhedrons; ) is a three-dimensional figure with flat polygonal faces, straight edges and sharp corners or vertices. The term "polyhedron" may refer either to a solid figure or to its boundary su ...
, described algorithms for computing it, and analyzed its complexity on several different types of polyhedron.
[.]
Huber et al. investigated
metric space
In mathematics, a metric space is a Set (mathematics), set together with a notion of ''distance'' between its Element (mathematics), elements, usually called point (geometry), points. The distance is measured by a function (mathematics), functi ...
s under which the corresponding
Voronoi diagram
In mathematics, a Voronoi diagram is a partition of a plane into regions close to each of a given set of objects. It can be classified also as a tessellation. In the simplest case, these objects are just finitely many points in the plane (calle ...
s and straight skeletons coincide. For two dimensions, the characterization of such metric spaces is complete. For higher dimensions, this method can be interpreted as a generalization of straight skeletons of certain input shapes to arbitrary dimensions by means of Voronoi diagrams.
[.]
References
External links
*
2D Straight Skeletonin
CGAL
The Computational Geometry Algorithms Library (CGAL) is an open source software library of computational geometry algorithms. While primarily written in C++, Scilab bindings and bindings generated with SWIG (supporting Python and Java for now) a ...
, the Computational Geometry Algorithms Library
Straight Skeleton for polygon with holesStraight Skeleton builder implemented in java.
* {{cite web
, author = Amit Parnerkar, Sarnath Ramnath
, title = Engineering an efficient algorithm for finding the straight skeleton of a simple polygon in O(n log n)
, url = http://web.stcloudstate.edu/rsarnath/skeleton/definition.htm
STALGO "STALGO is an industrial-strength C++ software package for computing straight skeletons and mitered offset-curves." by Stefan Huber.
Discrete geometry
Computational geometry