Straight skeleton

From Wikipedia, the free encyclopedia

The straight skeleton, the shrinking process that creates it, and a three-dimensional roofline created from it.
The straight skeleton, the shrinking process that creates it, and a three-dimensional roofline created from it.

In geometry, a straight skeleton is a method of representing a polygon by a topological skeleton. It is similar in some ways to the medial axis but differs in that the skeleton is composed of straight line segments, while the medial axis of a polygon may involve parabolic curves.

The straight skeleton 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.

Straight skeletons were first defined for simple polygons by Aichholzer et al.,[1] and generalized to planar straight line graphs by Aichholzer and Aurenhammer.[2] Cheng and Vigneron showed how to compute the straight skeleton of a simple polygon with n vertices, r of which have angles greater than Pi; in time O(n log2 n + r3/2 log r).[3] For more general polygonal inputs, the best known time bound is from a more complex and slower algorithm by Eppstein and Erickson.[4]

Contents

[edit] Example

The illustration shows:

  1. a straight skeleton (non bold) of a simple polygon (bold)
  2. the shrinking process that, when taken to its limit, creates the skeleton
  3. a 3d interpretation of the same skeleton, a 'roof' structure

[edit] Applications

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.[1][5]

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, and related origami design problems.[6]

Barequet et al. use straight skeletons in an algorithm for finding a three-dimensional surface that interpolates between two given polygonal curves.[7]

Tănase and Veltkamp propose to decompose concave polygons into unions of convex regions using straight skeletons, as a preprocessing step for shape matching in image processing.[8]

Bagheri and Razzazi use straight skeletons to guide vertex placement in a graph drawing algorithm in which the graph drawing is constrained to lie inside a polygonal boundary.[9]

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.

[edit] References

  1. ^ a b Aichholzer, Oswin; Aurenhammer, Franz; Alberts, David; Gärtner, Bernd (1995). "A novel type of skeleton for polygons". Journal of Universal Computer Science 1 (12): 752–761. MR1392429. 
  2. ^ Aichholzer, Oswin; Aurenhammer, Franz (1996). "Straight skeletons for general polygonal figures in the plane". Proc. 2nd Ann. Int. Conf. Computing and Combinatorics (COCOON '96): 117–126, Lecture Notes in Computer Science, no. 1090, Springer-Verlag. 
  3. ^ Cheng, Siu-Wing; Vigneron, Antoine (2002). "Motorcycle graphs and straight skeletons". Proceedings of the 13th Annual ACM-SIAM Symposium on Discrete Algorithms: 156–165. 
  4. ^ Eppstein, David; Erickson, Jeff (1999). "Raising roofs, crashing cycles, and playing pool: applications of a data structure for finding pairwise interactions". Discrete & Computational Geometry 22 (4): 569–592. doi:10.1007/PL00009479. MR1721026. 
  5. ^ Bélanger, David (2000). Designing Roofs of Buildings.
  6. ^ Demaine, Erik D.; Demaine, Martin L.; Lubiw, Anna (1998). "Folding and cutting paper". Revised Papers from the Japan Conference on Discrete and Computational Geometry (JCDCG'98): 104–117, Lecture Notes in Computer Science, no. 1763, Springer-Verlag. doi:10.1007/b75044. 
  7. ^ Barequet, Gill; Goodrich, Michael T.; Levi-Steiner, Aya; Steiner, Dvir (2003). "Straight-skeleton based contour interpolation". Proceedings of the Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms: 119–127. 
  8. ^ Tănase, Mirela; Veltkamp, Remco C. (2003). "Polygon decomposition based on the straight line skeleton". Proceedings of the 19th Annual ACM Symposium on Computational Geometry: 58–67. doi:10.1145/777792.777802. 
  9. ^ Bagheri, Alireza; Razzazi, Mohammadreza (2004). "Drawing free trees inside simple polygons using polygon skeleton". Computing and Informatics 23 (3): 239–254. MR2165282. 

[edit] External links