computing the straight skeleton of an orthogonal monotone
play

Computing the Straight Skeleton of an Orthogonal Monotone Polygon in - PowerPoint PPT Presentation

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


  1. 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

  2. Preliminaries UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r P is an orthogonal x -monotone polygon with n vertices. 2/10

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  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

  11. 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

  12. 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

  13. Constructing S ( C ) UNIVERSITY OF SALZBURG We start our incremental construction by adding e 1 . Computational Geometry and Applications Lab e 1 4/10

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. � 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

  21. � − 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

  22. � − 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

  23. � − 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

  24. � − 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

  25. � − 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

  26. � − 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

  27. � 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

  28. � 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

  29. � 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

  30. � 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

  31. Finalizing S ( C ) UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab r We process the elements that remain on G . 8/10

  32. 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

  33. 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

  34. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab v W v E 9/10

  35. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l (1) 9/10

  36. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l (1) 9/10

  37. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l ( j ) 9/10

  38. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u (1) a f l ( j ) 9/10

  39. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u ( i ) a f l ( j ) 9/10

  40. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u ( i ) a f l ( j ) 9/10

  41. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab f u ( i ) a f l ( j ) 9/10

  42. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab 9/10

  43. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab 9/10

  44. Skeleton Merging UNIVERSITY OF SALZBURG Computational Geometry and Applications Lab 9/10

  45. 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