85
5/2/2007 Don Sheehy Overlay Stitch Meshing 1 Overlay Stitch Meshing Overlay Stitch Meshing

Overlay Stitch Meshing

Embed Size (px)

DESCRIPTION

Overlay Stitch Meshing. A competitive algorithm for no-large-angle triangulation. Don Sheehy Joint work with Gary Miller and Todd Phillips To appear at ICALP 2007. The Problem. Input: A Planar Straight Line Graph. The Problem. Input: A Planar Straight Line Graph. - PowerPoint PPT Presentation

Citation preview

Page 1: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

1

Overlay Stitch MeshingOverlay Stitch Meshing

Page 2: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

2

A competitive algorithm for A competitive algorithm for no-large-angle triangulationno-large-angle triangulation

Don SheehyDon Sheehy

Joint work with Gary Miller Joint work with Gary Miller and Todd Phillipsand Todd Phillips

To appear at ICALP 2007To appear at ICALP 2007

Page 3: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

3

The ProblemThe ProblemInput: A Planar Straight Line Input: A Planar Straight Line

GraphGraph

Page 4: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

4

The ProblemThe ProblemInput: A Planar Straight Line Input: A Planar Straight Line

GraphGraph

Output: A Conforming TriangulationOutput: A Conforming Triangulation

Page 5: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

5

The ProblemThe ProblemInput: A Planar Straight Line Input: A Planar Straight Line

GraphGraph

Output: A Conforming TriangulationOutput: A Conforming Triangulation

Page 6: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

6

Why would you want to do that?Why would you want to do that?

Page 7: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

7

Page 8: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

8

Page 9: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

9

Page 10: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

10

Page 11: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

11

Page 12: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

12

What went wrong?What went wrong?

Page 13: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

13

What if you don’t know the function?What if you don’t know the function?

?? ??

Page 14: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

14

2 Definitions of Quality2 Definitions of Quality

1. No Large Angles [Babuska, Aziz 1. No Large Angles [Babuska, Aziz 1976]1976]

Page 15: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

15

2 Definitions of Quality2 Definitions of Quality

1. No Large Angles [Babuska, Aziz 1. No Large Angles [Babuska, Aziz 1976]1976]

2. No Small Angles2. No Small Angles

Page 16: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

16

No Small AnglesNo Small Angles

Page 17: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

17

No Small AnglesNo Small Angles

You may have heard of these You may have heard of these before.before.

Delaunay RefinementDelaunay Refinement

Sparse Voronoi RefinementSparse Voronoi Refinement

QuadtreeQuadtree

Page 18: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

18

Paying for the spreadPaying for the spread

LL

ss

Spread = L/sSpread = L/s

Page 19: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

19

Paying for the spreadPaying for the spread

Optimal No-Large-Angle TriangulationOptimal No-Large-Angle Triangulation

Page 20: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

20

Paying for the spreadPaying for the spreadWhat if we don’t allow small angles?What if we don’t allow small angles?

Page 21: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

21

Paying for the spreadPaying for the spread

O(L/s)O(L/s) triangles! triangles!

What if we don’t allow small angles?What if we don’t allow small angles?

Page 22: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

22

Paying for the spreadPaying for the spread

O(L/s)O(L/s) triangles! triangles!

What if we don’t allow small angles?What if we don’t allow small angles?Fact: For inputs with Fact: For inputs with NO NO edgesedges, no-small-angle , no-small-angle

meshing algorithms produce meshing algorithms produce output with output with O(n log L/s)O(n log L/s) size size and angles between 30and angles between 30oo and and

120120oo

Page 23: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

23

What to do?What to do?

Small input angles can force even smaller Small input angles can force even smaller ouput angles. [Shewchuk ’02]ouput angles. [Shewchuk ’02]

Page 24: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

24

No Large AnglesNo Large Angles

Page 25: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

25

Polygons with HolesPolygons with Holes[Bern, Mitchell, Ruppert 95] – [Bern, Mitchell, Ruppert 95] –

- All triangles are - All triangles are nonobtuse. nonobtuse.

- Output has O(n) triangles.- Output has O(n) triangles.

Page 26: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

26

Polygons with HolesPolygons with Holes[Bern, Mitchell, Ruppert 95] – [Bern, Mitchell, Ruppert 95] –

- All triangles are - All triangles are nonobtuse. nonobtuse.

- Output has O(n) triangles.- Output has O(n) triangles.

Does not work for arbitrary PSLGsDoes not work for arbitrary PSLGs

Page 27: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

27

Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.

O(n) O(n) pointpoint

ss

O(n) O(n) lineline

ss

Page 28: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

28

Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.

O(n) O(n) pointpoint

ss

O(n) O(n) lineline

ss

Page 29: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

29

Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.

O(n) O(n) pointpoint

ss

O(n) O(n) lineline

ss

Page 30: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

30

Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.

O(n) O(n) pointpoint

ss

O(n) O(n) lineline

ss

Page 31: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

31

Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.

O(n) O(n) pointpoint

ss

O(n) O(n) lineline

ss

Page 32: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

32

Paterson’s ExamplePaterson’s ExampleRequires Requires (n(n22) points.) points.

O(n) O(n) pointpoint

ss

O(n) O(n) lineline

ss

Page 33: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

33

Propagating PathsPropagating Paths

Page 34: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

34

Propagating PathsPropagating Paths

Page 35: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

35

Propagating PathsPropagating Paths

First introduced by Mitchell [93]First introduced by Mitchell [93]

Later Improved by Tan [96]Later Improved by Tan [96]

Worst Case Optimal Size O(nWorst Case Optimal Size O(n22))

Angle bounds: 132Angle bounds: 132oo

Page 36: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

36

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 37: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

37

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Results:Results:1.1. Angles bounded by 170Angles bounded by 170oo

2.2. O(log L/s) competitive sizeO(log L/s) competitive size

Page 38: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

38

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 39: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

39

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 40: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

40

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 41: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

41

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 42: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

42

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 43: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

43

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 44: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

44

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 45: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

45

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 46: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

46

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 47: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

47

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 48: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

48

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

Page 49: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

49

The OSM AlgorithmThe OSM Algorithm(Overlay Stitch Meshing)(Overlay Stitch Meshing)

• An Overlay Edge is An Overlay Edge is keptkept if if1. It does not intersect the input,1. It does not intersect the input,

OROR

2. It forms a 2. It forms a goodgood intersection with the intersection with the input.input.

at least 30at least 30oo

Page 50: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

50

Angle GuaranteesAngle Guarantees

Page 51: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

51

Angle GuaranteesAngle Guarantees

Page 52: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

52

Angle GuaranteesAngle Guarantees

We want to show that angles at We want to show that angles at stitchstitch vertices are bounded by vertices are bounded by

170170oo

Page 53: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

53

Angle GuaranteesAngle Guarantees

An Overlay TriangleAn Overlay Triangle

Page 54: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

54

Angle GuaranteesAngle Guarantees

An Overlay TriangleAn Overlay Triangle

An Overlay EdgeAn Overlay Edge

Page 55: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

55

Angle GuaranteesAngle Guarantees

An Overlay TriangleAn Overlay Triangle

An Overlay EdgeAn Overlay Edge

Gap BallGap Ball

Page 56: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

56

Angle GuaranteesAngle Guarantees

A Good IntersectionA Good Intersection

Page 57: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

57

Angle GuaranteesAngle Guarantees

A Bad IntersectionA Bad Intersection

Page 58: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

58

Angle GuaranteesAngle Guarantees

A Bad IntersectionA Bad Intersection

Page 59: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

59

Angle GuaranteesAngle Guarantees

A Bad IntersectionA Bad Intersection

How Bad can it How Bad can it be?be?

Page 60: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

60

Angle GuaranteesAngle GuaranteesHow Bad can it How Bad can it

be?be?

About 10About 10oo

About 170About 170oo

Page 61: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

61

Angle GuaranteesAngle GuaranteesHow Bad can it How Bad can it

be?be?

About 10About 10oo

Theorem: If any input Theorem: If any input edge makes a edge makes a goodgood intersection with an intersection with an overlay edge then any overlay edge then any other intersection on other intersection on that edge is that edge is not too not too badbad..

About 170About 170oo

Page 62: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

62

Size BoundsSize Bounds

Page 63: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

63

Size BoundsSize BoundsHow big is the resulting triangulation?How big is the resulting triangulation?

Page 64: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

64

Size BoundsSize BoundsHow big is the resulting triangulation?How big is the resulting triangulation?

Goal: log(L/s)-competitive with optimalGoal: log(L/s)-competitive with optimal

Page 65: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

65

Local Feature SizeLocal Feature Size

lfs(x) = distance to second nearest input vertex.lfs(x) = distance to second nearest input vertex.

xxlfs(x)lfs(x)

Note: lfs is defined on Note: lfs is defined on the whole plane before the whole plane before

we do any meshing.we do any meshing.

Page 66: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

66

Ruppert’s IdeaRuppert’s Idea

rr

cc

r = r = (lfs(c))(lfs(c))

area(area() = ) = (lfs(c)(lfs(c)22))

# of triangles = # of triangles = ((ssss 1/lfs(x,y) 1/lfs(x,y)22 dxdy) dxdy)

Page 67: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

67

Ruppert’s IdeaRuppert’s Idea

rr

cc

r = r = (lfs(c))(lfs(c))

area(area() = ) = (lfs(c)(lfs(c)22))

# of triangles = # of triangles = ((ssss 1/lfs(x,y) 1/lfs(x,y)22 dxdy) dxdy)

dydy

dxdxThis represents a This represents a (dxdy/lfs(x,y)(dxdy/lfs(x,y)22)) fraction of the fraction of the

triangle.triangle.

Page 68: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

68

Ruppert’s IdeaRuppert’s Idea

rr

cc

r = r = (lfs(c))(lfs(c))

area(area() = ) = (lfs(c)(lfs(c)22))

# of triangles = # of triangles = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy)

CaveatCaveat: Only Works for meshes : Only Works for meshes

with bounded with bounded smallestsmallest angle. angle.

Page 69: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

69

ExtendingExtending Ruppert’s Idea Ruppert’s Idea

An input edge An input edge e e intersecting intersecting

the overlay meshthe overlay mesh

# of triangles along # of triangles along ee = = ((sszz22 e e lfs(z) lfs(z)-1-1 dz) dz)

# of triangles = # of triangles = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy)

Page 70: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

70

ExtendingExtending Ruppert’s Idea Ruppert’s Idea

Now we can compute the Now we can compute the size of our output mesh. We size of our output mesh. We just need to compute these just need to compute these

integrals.integrals.

# of triangles along # of triangles along ee = = ((sszz22 e e lfs(z) lfs(z)-1-1 dz) dz)

# of triangles = # of triangles = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy)

Page 71: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

71

Output SizeOutput Size

Stitch Vertices Added = Stitch Vertices Added = ((sszz22 E E lfs(z) lfs(z)-1-1 dz) dz)

Overlay Mesh Size = Overlay Mesh Size = ((ssss lfs(x,y) lfs(x,y)-2-2 dxdy) dxdy) O(n log L/s)O(n log L/s)

O(log L/s)O(log L/s)££ |OPT| |OPT|

We’ll Prove this nowWe’ll Prove this now

Page 72: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

72

What can we say about the What can we say about the optimal optimal no-large-angle no-large-angle

triangulation?triangulation?

Page 73: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

73

Competitive AnalysisCompetitive AnalysisWarm-upWarm-up

9090oo

Page 74: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

74

Competitive AnalysisCompetitive AnalysisWarm-upWarm-up

??oo

Page 75: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

75

Competitive AnalysisCompetitive AnalysisWarm-upWarm-up

Page 76: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

76

Competitive AnalysisCompetitive AnalysisWarm-upWarm-up

Page 77: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

77

Competitive AnalysisCompetitive AnalysisWarm-upWarm-up

Suppose we have a triangulation with all angles at least 170Suppose we have a triangulation with all angles at least 170oo..

the optimalthe optimal

Page 78: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

78

Competitive AnalysisCompetitive AnalysisWarm-upWarm-up

Suppose we have a triangulation with all angles at least 170Suppose we have a triangulation with all angles at least 170oo..

the optimalthe optimal Every input edge is Every input edge is covered by empty covered by empty

lenses.lenses.

Page 79: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

79

Competitive AnalysisCompetitive AnalysisThis is what we have to integrate over.This is what we have to integrate over.

We show that in each lens, we We show that in each lens, we put O(log (L/s)) points on the put O(log (L/s)) points on the

edge.edge.

In other words:In other words:

sse’e’ 1/lfs(z) dz = O(log (L/s)) 1/lfs(z) dz = O(log (L/s))

ee’’

Page 80: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

80

Competitive AnalysisCompetitive Analysis

ee’’

sszz22 e’ e’ 1/lfs(z) dz = O(log (L/s)) 1/lfs(z) dz = O(log (L/s))

Page 81: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

81

Competitive AnalysisCompetitive Analysissszz22 e’ e’ 1/lfs(z) dz = O(log (L/s)) 1/lfs(z) dz = O(log (L/s))

ee’’

11stst trick: lfs trick: lfs ¸̧ s everywhere s everywhere

22ndnd trick: lfs trick: lfs ¸̧ ct for t ct for t22 [0,[0,ll/2]/2]

tt

sszz22 e’ e’ 1/lfs(z) dz 1/lfs(z) dz ·· 2 2ss00ss 1/s + 2 1/s + 2ssss

ll/2/2 1/x 1/x dx dx

= O(1) + O(log = O(1) + O(log ll/s)/s)

= O(log L/s)= O(log L/s)

Parametrize e’ as [0, Parametrize e’ as [0, ll]]

Page 82: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

82

ConclusionsConclusions

Page 83: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

83

ConclusionConclusion• A new algorithm for no-large-angle A new algorithm for no-large-angle

triangulation.triangulation.• The output has bounded degree The output has bounded degree

triangles.triangles.• The first log-competitive analysis for The first log-competitive analysis for

such an algorithm.such an algorithm.• We used some of the high school We used some of the high school

calculus you thought you forgot.calculus you thought you forgot.

Page 84: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

84

Where to go from here?Where to go from here?• 3D?3D?• Better angle bounds?Better angle bounds?• Leverage lower bound technology for Leverage lower bound technology for

constant competitive algorithm.constant competitive algorithm.

Page 85: Overlay Stitch Meshing

5/2/2007 Don SheehyOverlay Stitch Meshing

85

Thank you.Thank you.