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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend