Medial Axis Transformation of a Planar Shape

Report 4 Downloads 108 Views
Medial Axis Transformation of a Planar Shape Der-Tsai Lee (presented by Vincent Kusters)

October 14, 2013

Introduction

Convex polygons

General polygons

Introduction “While local attributes of the visual field (intensity, color, edge, angle, motion) and average global properties such as total luminous flux have been subject to progressive [. . . ] understanding, the attributes of shape [. . . ] are still unknown. Yet, shape has been shown to be a particularly stable organization of our visual stimulus [. . . ]. Why, then, has it been so difficult to tease out the properties of shape?” (Blum 1967)

Introduction

Convex polygons

General polygons

Introduction “While local attributes of the visual field (intensity, color, edge, angle, motion) and average global properties such as total luminous flux have been subject to progressive [. . . ] understanding, the attributes of shape [. . . ] are still unknown. Yet, shape has been shown to be a particularly stable organization of our visual stimulus [. . . ]. Why, then, has it been so difficult to tease out the properties of shape?” (Blum 1967)

Introduction

Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Informal definition Blum suggests: set the shape on fire and note where firefronts meet.1

1 Introduction

Heavily paraphrased. Convex polygons

General polygons

Formal definition A polygonal figure is a subset of the real plane bounded by a set of (simple) polygons. Given a set of polygons in the plane, the internal skeleton or medial axis is the locus of the centers of all maximal inscribed circles.

Introduction

Convex polygons

General polygons

Formal definition A polygonal figure is a subset of the real plane bounded by a set of (simple) polygons. Given a set of polygons in the plane, the internal skeleton or medial axis is the locus of the centers of all maximal inscribed circles. The external skeleton is the internal skeleton of the complement. The skeleton is the union of the internal and external skeleton.

Introduction

Convex polygons

General polygons

Formal definition A polygonal figure is a subset of the real plane bounded by a set of (simple) polygons. Given a set of polygons in the plane, the internal skeleton or medial axis is the locus of the centers of all maximal inscribed circles. The external skeleton is the internal skeleton of the complement. The skeleton is the union of the internal and external skeleton. The skeleton of a set of points P is the Voronoi diagram of P.

Introduction

Convex polygons

General polygons

Algorithmic history Original definition Int. skel. for digitized images Int. skel. for convex polygons Int. skel. for polygons Skel. for line segments, circles Skel. for line segments, circles Skel. for polygonal figures Int. skel. for polygons Int. skel. for convex polygons Int. skel. for polygons2 Int. skel. for polygons Int. straight skel. for polygons3 Int. straight skel. for polygons4 Int. straight skel. for polygons5 2

O(n log n) O(n 2 )√ O(nc log n ) O(n log2 n) O(n log n) O(n log n) O(n) O(n log∗ n) O(n) O(n 2 log n) O(n 1+є + n 8/11+є r 9/11+є ) O(n 3/2 log2 n)

(Blum 1967) (Montanari 1969) (Preparata 1977) (Preparata 1977) (Drysdale and Lee 1978) (Drysdale and Lee 1981) (Kirkpatrick 1979) (Lee 1982) (Aggarwal et al. 1989) (Devillers 1992) (Chin, Snoeyink, and Wang 1999) (Aichholzer et al. 1996) (Eppstein and Erickson 1999) (Cheng and Vigneron 2007)

Expected time. 3 Actually O(nr log n). To be presented by Antonis on Nov 1. 4 For any є > 0. To be presented by Júlia on Nov 8. 5 Expected time. Note that 3/2 < 17/11. To be presented by Manuel on Nov 8.

Introduction

Convex polygons

General polygons

Algorithmic history Original definition Int. skel. for digitized images Int. skel. for convex polygons Int. skel. for polygons Skel. for line segments, circles Skel. for line segments, circles Skel. for polygonal figures Int. skel. for polygons Int. skel. for convex polygons Int. skel. for polygons2 Int. skel. for polygons Int. straight skel. for polygons3 Int. straight skel. for polygons4 Int. straight skel. for polygons5 2

O(n log n) O(n 2 )√ O(nc log n ) O(n log2 n) O(n log n) O(n log n) O(n) O(n log∗ n) O(n) O(n 2 log n) O(n 1+є + n 8/11+є r 9/11+є ) O(n 3/2 log2 n)

(Blum 1967) (Montanari 1969) (Preparata 1977) (Preparata 1977) (Drysdale and Lee 1978) (Drysdale and Lee 1981) (Kirkpatrick 1979) (Lee 1982) (Aggarwal et al. 1989) (Devillers 1992) (Chin, Snoeyink, and Wang 1999) (Aichholzer et al. 1996) (Eppstein and Erickson 1999) (Cheng and Vigneron 2007)

Expected time. 3 Actually O(nr log n). To be presented by Antonis on Nov 1. 4 For any є > 0. To be presented by Júlia on Nov 8. 5 Expected time. Note that 3/2 < 17/11. To be presented by Manuel on Nov 8.

Introduction

Convex polygons

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977)

v

w u

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977)

v

w u

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977)

v B(v) w u B(u)

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977)

v B(v) w u B(u)

c(u, v)

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977)

v B(v) w

r(u, v) u B(u)

c(u, v)

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977)

v B(v) w

r(u, v) u B(u)

c(u, v) C(u, v) t

Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977) In this example, (u, v) minimizes r(u, v). Let r(G) = min r(u, v). (u,v)

v B(v) w

r(u, v) u B(u)

c(u, v) C(u, v) t

Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977) In this example, (u, v) minimizes r(u, v). Let r(G) = min r(u, v). (u,v)

v

w u

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977) In this example, (u, v) minimizes r(u, v). Let r(G) = min r(u, v). (u,v)

v

w u

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977) In this example, (u, v) minimizes r(u, v). Let r(G) = min r(u, v). (u,v)

v

w u

t Introduction

Convex polygons

s

General polygons

Convex polygons First: medial axis for convex polygons. (Preparata 1977) In this example, (u, v) minimizes r(u, v). Let r(G) = min r(u, v). (u,v)

v w u

t Introduction

s Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v.

v

w

r(u, v) u

t Introduction

Convex polygons

s

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). v

w u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). C(u, v) must touch ℓ(v, w). v w

u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). C(u, v) must touch ℓ(v, w). B(w) intersects vc(u, v). v w

u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). C(u, v) must touch ℓ(v, w). B(w) intersects vc(u, v). v w

u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). C(u, v) must touch ℓ(v, w). B(w) intersects vc(u, v). v w

r(u, v) u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). C(u, v) must touch ℓ(v, w). B(w) intersects vc(u, v). v w

r(u, v) u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v. Proof by contradiction. Suppose that C(u, v) does not touch (v, w). C(u, v) must touch ℓ(v, w). B(w) intersects vc(u, v). Hence, v r(v, w) < r(u, v). r(v, w) w

r(u, v) u c(u, v)

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v.

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v.

Lemma (Preparata 1977; see paper for proof ) If r(u, v) = r(G), then C(u, v) does not (properly) intersect G.

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v.

Lemma (Preparata 1977; see paper for proof ) If r(u, v) = r(G), then C(u, v) does not (properly) intersect G.

Lemma (Preparata 1977) If r(u, v) = r(G), then c(u, v) is a vertex of the medial axis of G.

Introduction

Convex polygons

General polygons

Convex polygons Lemma (Preparata 1977) If r(u, v) = r(G), then C(u, v) touches the edges incident to u and v.

Lemma (Preparata 1977; see paper for proof ) If r(u, v) = r(G), then C(u, v) does not (properly) intersect G.

Lemma (Preparata 1977) If r(u, v) = r(G), then c(u, v) is a vertex of the medial axis of G.

Proof.

By the lemmas above, C(u, v) is a maximal inscribed circle of G. Hence, c(u, v) is on the medial axis. Since C(u, v) touches (at least) three edges of G, its center c(u, v) must be a vertex.

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

y

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

y

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

y

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

y

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

y

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

xy

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

xy

uv z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). xy

uvw

z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). xy

uvw

z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Introduction

Convex polygons

General polygons

Convex polygons The algorithm (by example). w

x

v

y

u z

Store all r(v i , v i+1 ) in a priority queue Q. Repeat n times: remove minimum r(v j , v j+1 ) from Q; replace v j and v j+1 by new vertex v; delete r(v j−1 , v j ) and r(v j+1 , v j+2 ) from Q; insert r(v j−1 , v) and r(v, v j+2 ) into Q. O(n log n) time in total. Introduction

Convex polygons

General polygons

General polygons In general, polygons may have reflex vertices.

Introduction

Convex polygons

General polygons

General polygons In general, polygons may have reflex vertices. Let Vor(G) be the Voronoi diagram of a polygon G. Each region of Vor(G) is associated with an edge or reflex vertex of G.

Introduction

Convex polygons

General polygons

General polygons In general, polygons may have reflex vertices. Let Vor(G) be the Voronoi diagram of a polygon G. Each region of Vor(G) is associated with an edge or reflex vertex of G.

Lemma (Lee 1982) Removing the edges incident to all reflex vertices in Vor(G) yields the medial axis of G.

Introduction

Convex polygons

General polygons

General polygons In general, polygons may have reflex vertices. Let Vor(G) be the Voronoi diagram of a polygon G. Each region of Vor(G) is associated with an edge or reflex vertex of G.

Lemma (Lee 1982) Removing the edges incident to all reflex vertices in Vor(G) yields the medial axis of G.

Introduction

Convex polygons

General polygons

Computing the Voronoi diagram Lee presents a divide-and-conquer algorithm to compute Vor(G): 1

Represent G as a list of N = n + m elements (e1 , . . . , e N ) where n is the number of edges and m is the number of reflex vertices.

2

Partition G into reflex chains G = (C1 , . . . , C h ).

3

Compute Vor(G) using the algorithm below.

Introduction

Convex polygons

General polygons

Computing the Voronoi diagram Lee presents a divide-and-conquer algorithm to compute Vor(G): 1

Represent G as a list of N = n + m elements (e1 , . . . , e N ) where n is the number of edges and m is the number of reflex vertices.

2

Partition G into reflex chains G = (C1 , . . . , C h ).

3

Compute Vor(G) using the algorithm below.

Given a polygonal chain G ′ , compute Vor(G ′ ) as follows: 1

If G ′ is a single reflex chain, compute Vor(G ′ ).

2

Otherwise, split G ′ into polygonal chains G ℓ = (C1 , . . . , C⌊h′ /2⌋ ) and Gr = (C⌊h′ /2⌋+1 , . . . , C h ).

3

Recursively compute Vor(G ℓ ) and Vor(Gr ).

4

Merge Vor(G ℓ ) and Vor(Gr ) to obtain Vor(G ′ ).

Introduction

Convex polygons

General polygons

Computing the Voronoi diagram Lee presents a divide-and-conquer algorithm to compute Vor(G): 1

Represent G as a list of N = n + m elements (e1 , . . . , e N ) where n is the number of edges and m is the number of reflex vertices.

2

Partition G into reflex chains G = (C1 , . . . , C h ).

3

Compute Vor(G) using the algorithm below.

Given a polygonal chain G ′ , compute Vor(G ′ ) as follows: 1

If G ′ is a single reflex chain, compute Vor(G ′ ).

2

Otherwise, split G ′ into polygonal chains G ℓ = (C1 , . . . , C⌊h′ /2⌋ ) and Gr = (C⌊h′ /2⌋+1 , . . . , C h ).

3

Recursively compute Vor(G ℓ ) and Vor(Gr ).

4

Merge Vor(G ℓ ) and Vor(Gr ) to obtain Vor(G ′ ).

Note: G ℓ and Gr share a vertex that is convex in G. Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18 17

3 1

9 2

21

16

10 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18 17

3 1

9 2

21

16

10 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18 17

3 1

9 2

21

16

10 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18

3 9 2

B(12, 13)

17

1

21

16

10 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18

3 9 2

B(12, 13)

17

1

21

B(9, 13)

16

10 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18

3 9 2

B(12, 13)

17

1

21

B(9, 13)

16

B(9, 17) 10 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18

3 9 2

B(12, 13)

17

1

21

B(9, 13)

16

B(9, 17) 10

B(8, 17) 15

11 12

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18

3 9 2

B(12, 13)

17

1

21

B(9, 13)

16

B(9, 17) 10

B(8, 17) 15

11 12

B(8, 20)

14 13

Introduction

Convex polygons

General polygons

Merging Vor(G ℓ ) and Vor(Gr )

5

20 19

7

6

8

4

18

3 9 2

B(12, 13)

17

1

21

B(9, 13)

16

B(9, 17) 10

B(8, 17) 15

11 12

B(8, 20)

14 13

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 .

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 . Let M ℓ be the set of points left of M and define Mr symmetrically.

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 . Let M ℓ be the set of points left of M and define Mr symmetrically. All points in M ℓ are closer to G ℓ than to Gr .

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 . Let M ℓ be the set of points left of M and define Mr symmetrically. All points in M ℓ are closer to G ℓ than to Gr . Thus, for all points in M ℓ , diagram Vor(G ℓ ) gives the closest element in G ℓ Gr .

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 . Let M ℓ be the set of points left of M and define Mr symmetrically. All points in M ℓ are closer to G ℓ than to Gr . Thus, for all points in M ℓ , diagram Vor(G ℓ ) gives the closest element in G ℓ Gr . The argument for Vor(Gr ) is symmetric.

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 . Let M ℓ be the set of points left of M and define Mr symmetrically. All points in M ℓ are closer to G ℓ than to Gr . Thus, for all points in M ℓ , diagram Vor(G ℓ ) gives the closest element in G ℓ Gr . The argument for Vor(Gr ) is symmetric. It follows that Vor(G ℓ Gr ) = M ∪ (Vor(G ℓ ) ∩ M ℓ ) ∪ (Vor(Gr ) ∩ Mr ).

Introduction

Convex polygons

General polygons

Correctness

Lemma (Drysdale and Lee 1981) The merge algorithm computes Vor(G ℓ Gr ) from Vor(G ℓ ) and Vor(Gr ).

Proof.

Let M be the locus of points that are equidistant to G1 and G2 . Let M ℓ be the set of points left of M and define Mr symmetrically. All points in M ℓ are closer to G ℓ than to Gr . Thus, for all points in M ℓ , diagram Vor(G ℓ ) gives the closest element in G ℓ Gr . The argument for Vor(Gr ) is symmetric. It follows that Vor(G ℓ Gr ) = M ∪ (Vor(G ℓ ) ∩ M ℓ ) ∪ (Vor(Gr ) ∩ Mr ). Since the algorithm computes M correctly by tracing M through Vor(G ℓ ) ∪ Vor(Gr ), the algorithm computes Vor(G ℓ Gr ).

Introduction

Convex polygons

General polygons

Running time

Lemma (Drysdale and Lee 1981) The algorithm computes Vor(G) in O(N log N) time, where N = n + m.

Introduction

Convex polygons

General polygons

Running time

Lemma (Drysdale and Lee 1981) The algorithm computes Vor(G) in O(N log N) time, where N = n + m.

Proof.

The computation tree is a balanced binary tree where every leaf corresponds to computing Vor(C i ) for some reflex chain C i (which can easily be done in time proportional to ∣C i ∣).

Introduction

Convex polygons

General polygons

Running time

Lemma (Drysdale and Lee 1981) The algorithm computes Vor(G) in O(N log N) time, where N = n + m.

Proof.

The computation tree is a balanced binary tree where every leaf corresponds to computing Vor(C i ) for some reflex chain C i (which can easily be done in time proportional to ∣C i ∣). Hence, it is sufficient to show that merging Vor(G ℓ ) and Vor(Gr ) into Vor(G ℓ Gr ) takes time proportional to the number of elements of G ℓ Gr .

Introduction

Convex polygons

General polygons

Running time

Lemma (Drysdale and Lee 1981) The algorithm computes Vor(G) in O(N log N) time, where N = n + m.

Proof.

The computation tree is a balanced binary tree where every leaf corresponds to computing Vor(C i ) for some reflex chain C i (which can easily be done in time proportional to ∣C i ∣). Hence, it is sufficient to show that merging Vor(G ℓ ) and Vor(Gr ) into Vor(G ℓ Gr ) takes time proportional to the number of elements of G ℓ Gr . It can be shown that Voronoi diagrams have a linear number of vertices and edges (Drysdale and Lee 1981).

Introduction

Convex polygons

General polygons

Running time

Lemma (Drysdale and Lee 1981) The algorithm computes Vor(G) in O(N log N) time, where N = n + m.

Proof.

The computation tree is a balanced binary tree where every leaf corresponds to computing Vor(C i ) for some reflex chain C i (which can easily be done in time proportional to ∣C i ∣). Hence, it is sufficient to show that merging Vor(G ℓ ) and Vor(Gr ) into Vor(G ℓ Gr ) takes time proportional to the number of elements of G ℓ Gr . It can be shown that Voronoi diagrams have a linear number of vertices and edges (Drysdale and Lee 1981). It remains to show that the merge algorithm takes time linear in the sizes of Vor(G ℓ ) and Vor(Gr ).

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge.

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge.

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge.

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge.

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge.

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge.

Introduction

Convex polygons

General polygons

Running time Consider finding the next intersection point with the current bisector B in a cell of Vor(Gr ) (the left case is symmetrical). We start from the last intersection point and move counterclockwise. We either: (1) find the intersection with B or (2) delete the edge. Hence, we spend at most constant time per edge, which completes the running time proof.

Introduction

Convex polygons

General polygons

Conclusion

Lemma (Lee 1982) The algorithm computes the medial axis of a polygon in O(n log n) time.

Introduction

Convex polygons

General polygons

Conclusion

Lemma (Lee 1982) The algorithm computes the medial axis of a polygon in O(n log n) time. Next time (Nov 1): straight skeletons (Antonis) and crusts and β-skeletons (Zhangwen).

Introduction

Convex polygons

General polygons

Conclusion

Lemma (Lee 1982) The algorithm computes the medial axis of a polygon in O(n log n) time. Next time (Nov 1): straight skeletons (Antonis) and crusts and β-skeletons (Zhangwen). Thanks!

Introduction

Convex polygons

General polygons

References I Aggarwal, Alok et al. (1989). “A linear-time algorithm for computing the Voronoi diagram of a convex polygon”. In: Discrete & Computational Geometry 4.1, pp. 591–604. DOI: 10.1007/BF02187749. Aichholzer, Oswin et al. (1996). “A Novel Type of Skeleton for Polygons”. In: J.UCS The Journal of Universal Computer Science. Ed. by Hermann Maurer, Cristian Calude, and Arto Salomaa. Springer Berlin Heidelberg, pp. 752–761. ISBN: 978-3-642-80352-9. DOI: 10.1007/978-3-642-80350-5_65. Blum, Harry (1967). “A transformation for extracting new descriptors of shape”. In: Models for the perception of speech and visual form 19.5, pp. 362–380. Cheng, Siu-Wing and Antoine Vigneron (2007). “Motorcycle graphs and straight skeletons”. In: Algorithmica 47.2, pp. 159–182. DOI: 10.1007/s00453-006-1229-7.

References II Chin, Francis, Jack Snoeyink, and Cao An Wang (1999). “Finding the medial axis of a simple polygon in linear time”. In: Discrete & Computational Geometry 21.3, pp. 405–420. DOI: 10.1007/PL00009429. Devillers, Olivier (1992). “Randomization yields simple O(n log∗ n) algorithms for difficult Ω(n) problems”. In: International Journal of Computational Geometry & Applications 2.01, pp. 97–111. DOI: 10.1142/S021819599200007X. Drysdale III, Robert L and Der-Tsai Lee (Oct. 1978). “Generalized Voronoi diagram in the plane”. In: Proc. 16th Ann. Allerton Conf. on Comm., Contr. and Comp. Pp. 833–842. – (1981). “Generalization of Voronoi diagrams in the plane”. In: SIAM Journal on Computing 10.1, pp. 73–87. DOI: 10.1137/0210006.

References III Eppstein, David and Jeff Erickson (1999). “Raising roofs, crashing cycles, and playing pool: Applications of a data structure for finding pairwise interactions”. In: Discrete & Computational Geometry 22.4, pp. 569–592. DOI: 10.1007/PL00009479. Kirkpatrick, David G (1979). “Efficient computation of continuous skeletons”. In: Foundations of Computer Science, 1979., 20th Annual Symposium on. IEEE, pp. 18–27. DOI: 10.1109/SFCS.1979.15. Lee, Der-Tsai (1982). “Medial axis transformation of a planar shape”. In: Pattern Analysis and Machine Intelligence, IEEE Transactions on 4, pp. 363–369. DOI: 10.1109/TPAMI.1982.4767267. Montanari, Ugo (1969). “Continuous skeletons from digitized images”. In: Journal of the ACM (JACM) 16.4, pp. 534–549. Preparata, Franco P (1977). “The medial axis of a simple polygon”. In: Mathematical Foundations of Computer Science 1977. Springer, pp. 443–450.