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

computing the straight skeleton of an orthogonal monotone
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 1/10

Computing the Straight Skeleton

  • f an Orthogonal Monotone Polygon

in Linear Time

G¨ unther Eder, Martin Held, and Peter Palfrader

slide-2
SLIDE 2

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 2/10

Preliminaries

r P is an orthogonal x-monotone polygon with n vertices.

slide-3
SLIDE 3

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 2/10

Preliminaries

r P is an orthogonal x-monotone polygon with n vertices. r S(P) denotes the straight skeleton of P.

slide-4
SLIDE 4

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 2/10

Preliminaries

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

slide-5
SLIDE 5

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 2/10

Preliminaries

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

slide-6
SLIDE 6

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

The arcs of S(C) have only three directions: 1

1

  • ,

−1

1

  • , and

1

  • .
slide-7
SLIDE 7

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

ei Πi f (ei)

A face f (ei) of S(C) lies inside of the half-plane slab Πi.

slide-8
SLIDE 8

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

ei f (ei)

Also, f (ei) is monotone in respect its input edge as well as to a line perpendicular to it.

slide-9
SLIDE 9

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

ei f (ei)

Let us separate f (ei) into its left and right chain.

slide-10
SLIDE 10

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

ei

We maintain the partial straight skeleton S∗ during our incremental construction. It contains the left chains of all edges already inserted

slide-11
SLIDE 11

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

ei R G ei eh eh

We maintain the partial straight skeleton S∗ during our incremental construction. It contains the left chains of all edges already inserted, as well as two stacks R

slide-12
SLIDE 12

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 3/10

Algorithm Setup

ei R G ei eh eh

We maintain the partial straight skeleton S∗ during our incremental construction. It contains the left chains of all edges already inserted, as well as two stacks R and G.

slide-13
SLIDE 13

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

e1

We start our incremental construction by adding e1.

slide-14
SLIDE 14

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

a e1 ei

The first arc a of the left chain of f (ei) has 1

1

  • r

−1

1

  • direction.
slide-15
SLIDE 15

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

e1 ei a ei−1

The first arc a of the left chain of f (ei) has 1

1

  • r

−1

1

  • direction.

It connects to the end of f (ei−1)’s left chain.

slide-16
SLIDE 16

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

R G e1 ei a ei−1 es et es et

Subsequent arcs between ei and the edge on top of R.

slide-17
SLIDE 17

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

R G e1 ei a ei−1 es et es et ei

Subsequent arcs between ei and the edge on top of R. The last arc of a chain ends in a ray,

slide-18
SLIDE 18

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

R G e1 ei a ei

Subsequent arcs between ei and the edge on top of R. The last arc of a chain ends in a ray, unfinished ghost arc,

slide-19
SLIDE 19

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 4/10

Constructing S(C)

R G e1 ei a

Subsequent arcs between ei and the edge on top of R. The last arc of a chain ends in a ray, unfinished ghost arc, or bounded vertical arc.

slide-20
SLIDE 20

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 5/10

Arc a has 1

1

  • Direction

e1 R G a ei ei et et

We follow with a case distinction for the next arc a added in the left chain of ei. Arc a is a ray and we push ei onto R.

slide-21
SLIDE 21

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 6/10

Arc a has −1

1

  • Direction

a ei

Arc a is either a bounded arc or a ray.

slide-22
SLIDE 22

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 6/10

Arc a has −1

1

  • Direction

ei a ei−1

If the left chain of ei−1 terminates in a bounded arc, and a is the first arc on the left chain of ei, it ends where the left chain of ei−1 ends.

slide-23
SLIDE 23

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 6/10

Arc a has −1

1

  • Direction

R G ei a ei

Otherwise, we look at et at the top of R. If et does not terminate in a 1

1

  • ray, a is a

−1

1

  • ray,

ei is pushed onto R, and the chain is completed.

slide-24
SLIDE 24

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 6/10

Arc a has −1

1

  • Direction

R G a ei et et es er es er r r ′ p

Otherwise, the left chain of et terminates in a 1

1

  • ray r. At p arc a intersects ray r.

In f (ei−1) we modify r into a bounded arc r′ that ends at p, where a ends as well.

slide-25
SLIDE 25

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 6/10

Arc a has −1

1

  • Direction

R G a ei et r ′ p ef eh ef eh et

Finally we have to process the elements of G below r′ and a.

slide-26
SLIDE 26

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 6/10

Arc a has −1

1

  • Direction

R G a ei et r ′ p ef eh

Finally we have to process the elements of G below r′ and a.

slide-27
SLIDE 27

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 7/10

Arc a has

1

  • Direction

R G a et ei et p

Arc a is either a ghost arc or bounded vertical arc, starting at a point p.

slide-28
SLIDE 28

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 7/10

Arc a has

1

  • Direction

R G a et ei ei et p

Arc a is either a ghost arc or bounded vertical arc, starting at a point p. In case a is a ghost arc we push ei onto G.

slide-29
SLIDE 29

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 7/10

Arc a has

1

  • Direction

ei et Πt Πi a

Otherwise, a is the line segment from p that is contained in both Πt and Πi.

slide-30
SLIDE 30

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 7/10

Arc a has

1

  • Direction

ei et a ei et Πt Πi a

Otherwise, a is the line segment from p that is contained in both Πt and Πi.

slide-31
SLIDE 31

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 8/10

Finalizing S(C)

r We process the elements that remain on G.

slide-32
SLIDE 32

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 8/10

Finalizing S(C)

r We process the elements that remain on G. r All arcs inserted intersect only rays or ghost arcs.

slide-33
SLIDE 33

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 8/10

Finalizing S(C)

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.

slide-34
SLIDE 34

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

vW vE

slide-35
SLIDE 35

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(1) fl(1)

slide-36
SLIDE 36

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(1) fl(1)

slide-37
SLIDE 37

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(1) fl(j)

slide-38
SLIDE 38

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(1) fl(j)

slide-39
SLIDE 39

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(i) fl(j)

slide-40
SLIDE 40

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(i) fl(j)

slide-41
SLIDE 41

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

a fu(i) fl(j)

slide-42
SLIDE 42

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

slide-43
SLIDE 43

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

slide-44
SLIDE 44

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 9/10

Skeleton Merging

slide-45
SLIDE 45

Computational Geometry and Applications Lab

UNIVERSITY OF SALZBURG 10/10

Q & A Summary

r Incremental construction of S(C) in linear time. r Merge of both straight skeletons in linear time.

Questions?