computing straight skeletons...computing straight skeletons by means of kinetic triangulations 1...

90
COMPUTING S TRAIGHT S KELETONS BY MEANS OF KINETIC T RIANGULATIONS Peter Palfrader October 2013 1

Upload: others

Post on 05-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

COMPUTING

STRAIGHT SKELETONS

BY MEANS OF

KINETIC TRIANGULATIONS

Peter Palfrader

October 2013

1

Page 2: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

COMPUTING STRAIGHT SKELETONS

BY MEANS OF KINETIC TRIANGULATIONS

1 INTRODUCTIONDefinitionApplications

2 TRIANGULATION-BASED ALGORITHMBasic IdeaFlaws of the original AlgorithmExperimental Results

2

Page 3: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS

pferd11cm0.722

• Aichholzer, Alberts, Aurenhammer, Gärtner 1995.• Problem: Given input graph, find the straight skeleton.

3

Page 4: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS

• Aichholzer, Alberts, Aurenhammer, Gärtner 1995.• Problem: Given input graph, find the straight skeleton.

3

Page 5: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).

• wavefront propagation — shrinking process.• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 6: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.

• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 7: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.

• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 8: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.

• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 9: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.

• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 10: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.

• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 11: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.

• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 12: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

STRAIGHT SKELETONS – MOTIVATION

• input polygon P emanates wavefront WF(P, t).• wavefront propagation — shrinking process.• straight skeleton SK(P) is traces of wavefront vertices.

4

Page 13: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

• Wavefront topology changes over time.

• edge event: an edge of WF(P, t) vanishes.• split event: wavefront splits into two parts.• In SK(P), events (topology changes) are witnessed by

nodes.

5

Page 14: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

• Wavefront topology changes over time.

• edge event: an edge of WF(P, t) vanishes.• split event: wavefront splits into two parts.• In SK(P), events (topology changes) are witnessed by

nodes.

5

Page 15: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

• Wavefront topology changes over time.

• edge event: an edge of WF(P, t) vanishes.• split event: wavefront splits into two parts.• In SK(P), events (topology changes) are witnessed by

nodes.

5

Page 16: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

edge events

• Wavefront topology changes over time.• edge event: an edge of WF(P, t) vanishes.

• split event: wavefront splits into two parts.• In SK(P), events (topology changes) are witnessed by

nodes.

5

Page 17: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

• Wavefront topology changes over time.• edge event: an edge of WF(P, t) vanishes.

• split event: wavefront splits into two parts.• In SK(P), events (topology changes) are witnessed by

nodes.

5

Page 18: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

split event

• Wavefront topology changes over time.• edge event: an edge of WF(P, t) vanishes.• split event: wavefront splits into two parts.

• In SK(P), events (topology changes) are witnessed bynodes.

5

Page 19: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TOPOLGY CHANGES – EDGE- AND SPLIT-EVENTS

split eventedge events

• Wavefront topology changes over time.• edge event: an edge of WF(P, t) vanishes.• split event: wavefront splits into two parts.• In SK(P), events (topology changes) are witnessed by

nodes.

5

Page 20: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

APPLICATIONS: ROOF MODELING

image credit: Stefan Huber

6

Page 21: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

APPLICATIONS: OFFSETTING

7

Page 22: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

APPLICATIONS: OFFSETTING

7

Page 23: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

APPLICATIONS: OFFSETTING

7

Page 24: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

COMPUTING THE STRAIGHT SKELETON

• Common approach: simulate the wavefront propagation.

• Problem: When will the next event happen, and what is it?

• If we solve this, we can incrementally construct the SK.

8

Page 25: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.

• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 26: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.

• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 27: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.

• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 28: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.

• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 29: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 30: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 31: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 32: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 33: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 34: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Aichholzer, Aurenhammer 1996, 1998.• Maintain a kinetic triangulation of the points of the plane

not yet visited.• Collapsing triangles witness edge and split events.

• Compute collapse times of triangles.• Maintain a priority queue of collapses.• On events, update triangulation and priority queue as

required.

• We can always easily find the next event, and thuscompute the straight skeleton.

9

Page 35: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 36: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 37: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 38: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.

• Instead they need special processing: flip events.

10

Page 39: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 40: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 41: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 42: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 43: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATION-BASED ALGORITHM

• Caveat: Not all collapses witness changes in the wavefronttopology.

• Such collapses cannot be ignored.• Instead they need special processing: flip events.

10

Page 44: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

CONTRIBUTION

• We have implemented this algorithm.• We filled in gaps in the description of the algorithm.• The algorithm does not always work when input is not in

general position. We have identified and corrected theseflaws.

• We have run extensive tests using this code.

11

Page 45: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 46: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 47: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 48: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 49: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 50: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 51: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 52: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 53: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 54: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

FLIP-EVENT LOOPS

• Without general position, this algorithm can end up ininfinite loops.

• This is not a result of inexact floating point operations. Thesame can happen with exact arithmetic!

12

Page 55: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

DETECTING FLIP-EVENT LOOPS

• Keep a history of flip events 〈e1,e2, . . .〉 where eachei = (ti ,∆i).

• This history can be cleared when we encounter an edge orsplit event.

• If we encounter a flip event a second time, we may be in aflip-event loop.

13

Page 56: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

HANDLING FLIP-EVENT LOOPS

Brief outline:• Identify the polygon P which has collapsed to a straight

line.• Retriangulate P and its neighborhood.

v1 vk

v3

v2 v4 v5

e

ve

C(e)

∆e

• This approach also is applicable to kinetic triangulations inother algorithms.

14

Page 57: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

NUMBER OF FLIP EVENTS

• O(n3) is the best known upper bound on the number of flipevents,

• No input is known that results in more than quadraticallymany flip events.

• It turns out that for practical data the number of flip eventsis very linear.

15

Page 58: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

NUMBER OF FLIP EVENTS, II

102 103 104 105 106

input size (number of vertices)

0

1

2

3

flips

/num

v

16

Page 59: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

PERFORMANCE OBSERVATIONS

theoretical worst case practical

runtime space runtime space

E&E1 O(n17/11+ε) O(n17/11+ε) N/A

CGAL2 O(n2 log n) O(n2) O(n2 log n) O(n2)

Bone3 O(n2 log n) O(n) O(n log n) O(n)

Surfer4 O(n3 log n) O(n) O(n log n) O(n)

1Eppstein and Erickson, 19992F. Cacciola, 20043Huber and Held, 20104this, based on Aichholzer and Aurenhammer, 1998

17

Page 60: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

RUNTIME TESTS

0.01

0.1

1

10

100

1000

103 104 105 106

runtime(seconds)

Surfer

BoneCGAL

10MB

100MB

1GB

103 104 105 106

mem

oryusage

Surfer

BoneCGAL

Runtime and memory usage behavior of CGAL, Bone, andSurfer for inputs of different sizes.Bone and Surfer use their IEEE 754 double precision backend.

18

Page 61: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

SUMMARY

• We have implemented Aichholzer and Aurenhammer’salgorithm from 1998, filling in details in the algorithmdescription.

• We fixed real problems that arise in the absence of generalposition.

• Our approach to handling flip events has widerapplications.

• The implementation runs in O(n log n) time for real-worlddata. The number of flip events is linear in practice.

• It is industrial-strength, having been tested on tens ofthousands of inputs.

• It is the fastest straight skeleton construction code to date,handling millions of vertices in mere seconds.

19

Page 62: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

QUESTIONS

Thank you for your attention.

Questions

20

Page 63: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: BORDERS OF AUSTRIA

21

Page 64: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: RANDOM POLYGON

22

Page 65: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: PCB

23

Page 66: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: POLYGON WITH HOLE

24

Page 67: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: CIRCULAR HOLES

25

Page 68: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: MORE HOLES

26

Page 69: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: ALMOST POLYGON

27

Page 70: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: STAR

28

Page 71: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

GALLERY: SPIRALS

29

Page 72: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

APPLICATIONS: GIS

image credit: Stefan Huber

30

Page 73: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

PSLG

31

Page 74: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

MEDIAL AXIS VS. SK

VD-based MA SK

32

Page 75: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

ALTERNATE COMPUTATION

v

e

2.5 3.0time

−1

0

1

2

f(ti

me)

∆ collapses

33

Page 76: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

INFINITELY FAST VERTICES

v1

v2

∆1

∆2

e1

e2

w2

w1

34

Page 77: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 78: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 79: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 80: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 81: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 82: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 83: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TRIANGULATING

• Triangulate the convex hull.• Unfortunately the convex hull changes with time, and it

matters.

• We need to update the triangulation at some point beforethis happens, but how?

35

Page 84: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

Ω FOR FLIP EVENTS

N1N2

. . .Nm

E1E2 . . .

Ek

E1 E2

W

36

Page 85: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

Ω FOR NON-FLIP EVENTS

S(P)

P

Ω(n) edge events

Ω(n) triangles

e1e2

ek. . .

37

Page 86: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

SOLUTION FOR FLIP-EVENT LOOPS WITH EGC

Pick, in order:• non-flip event → reduces triangles• longest edge to flip → reduces longest edge (count or

length)

38

Page 87: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

AFFECTED TRIANGLES, MAX

102 103 104 105 106

input size (number of vertices)

100

101

102

103

104

affe

cted

tria

ngle

s

in edge events

102 103 104 105 106

input size (number of vertices)

100

101

102

103

104

affe

cted

tria

ngle

sin split events

39

Page 88: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

AFFECTED TRIANGLES, AVG

102 103 104 105 106

input size (number of vertices)

10−1

100

101

102

affe

cted

∆/e

vent

40

Page 89: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

TIME SPENT, PHASES

pre-processing

triangulation

kinetictria

ngulation

initial schedule

propagation process

post-processin

g0 %

20 %

40 %

60 %

80 %

100 %

runt

ime

(per

cent

age

ofto

tal)

41

Page 90: COMPUTING STRAIGHT SKELETONS...COMPUTING STRAIGHT SKELETONS BY MEANS OF KINETIC TRIANGULATIONS 1 INTRODUCTION Definition Applications 2 TRIANGULATION-BASED ALGORITHM Basic Idea Flaws

MPFR

0 1000 2000 3000 4000 5000MPFR precision (bits)

0

50

100

150

Slow

dow

nfa

ctor

slowdown

0 1000 2000 3000 4000 5000MPFR precision (bits)

0

10

20

30

40

Blow

upfa

ctor

blowup

42