UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab Computing the Straight Skeleton of an Orthogonal Monotone Polygon in Linear Time G¨ unther Eder, Martin Held, and Peter Palfrader 1/10
Preliminaries UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r P is an orthogonal x -monotone polygon with n vertices. 2/10
Preliminaries UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r P is an orthogonal x -monotone polygon with n vertices. r S ( P ) denotes the straight skeleton of P . 2/10
Preliminaries UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r P is an orthogonal x -monotone polygon with n vertices. r S ( P ) denotes the straight skeleton of P . r We split P into its upper and lower monotone chain. v W v E 2/10
Preliminaries UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r P is an orthogonal x -monotone polygon with n vertices. r S ( P ) denotes the straight skeleton of P . r We split P into its upper and lower monotone chain. r Looking at a single chain C , let S ( C ) denote its straight skeleton. v W v E 2/10
Algorithm Setup UNIVERSITY OF SALZBURG � 1 � − 1 � 0 � � � The arcs of S ( C ) have only three directions: , , and . Computational Geometry and Applications Lab 1 1 1 3/10
Algorithm Setup UNIVERSITY OF SALZBURG A face f ( e i ) of S ( C ) lies inside of the half-plane slab Π i . Computational Geometry and Applications Lab Π i f ( e i ) e i 3/10
Algorithm Setup UNIVERSITY OF SALZBURG Also, f ( e i ) is monotone in respect its input edge as well as to a line perpendicular to it. Computational Geometry and Applications Lab f ( e i ) e i 3/10
Algorithm Setup UNIVERSITY OF SALZBURG Let us separate f ( e i ) into its left and right chain. Computational Geometry and Applications Lab f ( e i ) e i 3/10
Algorithm Setup UNIVERSITY OF SALZBURG We maintain the partial straight skeleton S ∗ during our incremental construction. Computational Geometry and Applications Lab It contains the left chains of all edges already inserted e i 3/10
Algorithm Setup UNIVERSITY OF SALZBURG We maintain the partial straight skeleton S ∗ during our incremental construction. Computational Geometry and Applications Lab It contains the left chains of all edges already inserted, as well as two stacks R e i e h R G e h e i 3/10
Algorithm Setup UNIVERSITY OF SALZBURG We maintain the partial straight skeleton S ∗ during our incremental construction. Computational Geometry and Applications Lab It contains the left chains of all edges already inserted, as well as two stacks R and G . e h e i R G e h e i 3/10
Constructing S ( C ) UNIVERSITY OF SALZBURG We start our incremental construction by adding e 1 . Computational Geometry and Applications Lab e 1 4/10
Constructing S ( C ) UNIVERSITY OF SALZBURG � 1 � − 1 � � The first arc a of the left chain of f ( e i ) has or direction. Computational Geometry and Applications Lab 1 1 e 1 a e i 4/10
Constructing S ( C ) UNIVERSITY OF SALZBURG � 1 � − 1 � � The first arc a of the left chain of f ( e i ) has or direction. Computational Geometry and Applications Lab 1 1 It connects to the end of f ( e i − 1 )’s left chain. e 1 a e i e i − 1 4/10
Constructing S ( C ) UNIVERSITY OF SALZBURG Subsequent arcs between e i and the edge on top of R . Computational Geometry and Applications Lab e t e s R G a e 1 e s e i e t e i − 1 4/10
Constructing S ( C ) UNIVERSITY OF SALZBURG Subsequent arcs between e i and the edge on top of R . The last arc of a chain ends in a ray, Computational Geometry and Applications Lab e i e t e s R G a e 1 e s e i e t e i − 1 4/10
Constructing S ( C ) UNIVERSITY OF SALZBURG Subsequent arcs between e i and the edge on top of R . The last arc of a chain ends in a ray, Computational Geometry and Applications Lab unfinished ghost arc, e i R G e 1 a e i 4/10
Constructing S ( C ) UNIVERSITY OF SALZBURG Subsequent arcs between e i and the edge on top of R . The last arc of a chain ends in a ray, Computational Geometry and Applications Lab unfinished ghost arc, or bounded vertical arc. R G e 1 a e i 4/10
� 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG We follow with a case distinction for the next arc a added in the left chain of e i . Computational Geometry and Applications Lab Arc a is a ray and we push e i onto R . e i e t R G e 1 a e t e i 5/10
� − 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Arc a is either a bounded arc or a ray. Computational Geometry and Applications Lab a e i 6/10
� − 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG If the left chain of e i − 1 terminates in a bounded arc, and a is the first arc on the left chain of e i , Computational Geometry and Applications Lab it ends where the left chain of e i − 1 ends. a e i e i − 1 6/10
� − 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG � 1 � − 1 Otherwise, we look at e t at the top of R . If e t does not terminate in a � ray, a is a � ray, Computational Geometry and Applications Lab 1 1 e i is pushed onto R , and the chain is completed. e i R G a e i 6/10
� − 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG � 1 Otherwise, the left chain of e t terminates in a � ray r . At p arc a intersects ray r . Computational Geometry and Applications Lab 1 In f ( e i − 1 ) we modify r into a bounded arc r ′ that ends at p , where a ends as well. e t e s e r R G r e r p e s r ′ a e i e t 6/10
� − 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Finally we have to process the elements of G below r ′ and a . Computational Geometry and Applications Lab e h e t e f R G p r ′ a e i e t e f e h 6/10
� − 1 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Finally we have to process the elements of G below r ′ and a . Computational Geometry and Applications Lab R G p r ′ a e i e t e f e h 6/10
� 0 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Arc a is either a ghost arc or bounded vertical arc, starting at a point p . Computational Geometry and Applications Lab e t R G a p e t e i 7/10
� 0 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Arc a is either a ghost arc or bounded vertical arc, starting at a point p . In case a is a ghost arc Computational Geometry and Applications Lab we push e i onto G . e t e i R G a p e t e i 7/10
� 0 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Otherwise, a is the line segment from p that is contained in both Π t and Π i . Computational Geometry and Applications Lab a Π t Π i e t e i 7/10
� 0 � Arc a has Direction 1 UNIVERSITY OF SALZBURG Otherwise, a is the line segment from p that is contained in both Π t and Π i . Computational Geometry and Applications Lab a a Π t Π i e i e t e t e i 7/10
Finalizing S ( C ) UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r We process the elements that remain on G . 8/10
Finalizing S ( C ) UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r We process the elements that remain on G . r All arcs inserted intersect only rays or ghost arcs. 8/10
Finalizing S ( C ) UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r We process the elements that remain on G . r All arcs inserted intersect only rays or ghost arcs. Theorem Our incremental construction approach creates S ( C ) in O ( n ) time. 8/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab v W v E 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l (1) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l (1) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l ( j ) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l ( j ) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u ( i ) a f l ( j ) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u ( i ) a f l ( j ) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u ( i ) a f l ( j ) 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab 9/10
Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab 9/10
Q & A UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab Summary r Incremental construction of S ( C ) in linear time. r Merge of both straight skeletons in linear time. Questions? 10/10
Recommend
More recommend