Upcoming SlideShare
×

# Overlay Stitch Meshing

1,062 views

Published on

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
1,062
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
2
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Overlay Stitch Meshing

1. 1. Overlay Stitch Meshing
2. 2. A competitive algorithm for no-large-angle triangulation Don Sheehy Joint work with Gary Miller and Todd Phillips To appear at ICALP 2007
3. 3. The Problem Input: A Planar Straight Line Graph
4. 4. The Problem Input: A Planar Straight Line Graph Output: A Conforming Triangulation
5. 5. The Problem Input: A Planar Straight Line Graph Output: A Conforming Triangulation
6. 6. Why would you want to do that?
7. 12. What went wrong?
8. 13. What if you don’t know the function? ? ?
9. 14. 2 Definitions of Quality 1. No Large Angles [Babuska, Aziz 1976]
10. 15. 2 Definitions of Quality 1. No Large Angles [Babuska, Aziz 1976] 2. No Small Angles
11. 16. No Small Angles
12. 17. No Small Angles You may have heard of these before. Delaunay Refinement Sparse Voronoi Refinement Quadtree
14. 19. Paying for the spread Optimal No-Large-Angle Triangulation
15. 20. Paying for the spread What if we don’t allow small angles?
16. 21. Paying for the spread O(L/s) triangles! What if we don’t allow small angles?
17. 22. Paying for the spread O(L/s) triangles! What if we don’t allow small angles? Fact: For inputs with NO edges , no-small-angle meshing algorithms produce output with O(n log L/s) size and angles between 30 o and 120 o
18. 23. What to do? Small input angles can force even smaller ouput angles. [Shewchuk ’02]
19. 24. No Large Angles
20. 25. Polygons with Holes [Bern, Mitchell, Ruppert 95] – - All triangles are nonobtuse. - Output has O(n) triangles.
21. 26. Polygons with Holes [Bern, Mitchell, Ruppert 95] – - All triangles are nonobtuse. - Output has O(n) triangles. Does not work for arbitrary PSLGs
22. 27. Paterson’s Example <ul><li>Requires  (n 2 ) points. </li></ul>O(n) points O(n) lines
23. 28. Paterson’s Example <ul><li>Requires  (n 2 ) points. </li></ul>O(n) points O(n) lines
24. 29. Paterson’s Example <ul><li>Requires  (n 2 ) points. </li></ul>O(n) points O(n) lines
25. 30. Paterson’s Example <ul><li>Requires  (n 2 ) points. </li></ul>O(n) points O(n) lines
26. 31. Paterson’s Example <ul><li>Requires  (n 2 ) points. </li></ul>O(n) points O(n) lines
27. 32. Paterson’s Example <ul><li>Requires  (n 2 ) points. </li></ul>O(n) points O(n) lines
28. 33. Propagating Paths
29. 34. Propagating Paths
30. 35. Propagating Paths First introduced by Mitchell [93] Later Improved by Tan [96] Worst Case Optimal Size O(n 2 ) Angle bounds: 132 o
31. 36. The OSM Algorithm (Overlay Stitch Meshing)
32. 37. The OSM Algorithm (Overlay Stitch Meshing) <ul><li>Results: </li></ul><ul><li>Angles bounded by 170 o </li></ul><ul><li>O(log L/s) competitive size </li></ul>
33. 38. The OSM Algorithm (Overlay Stitch Meshing)
34. 39. The OSM Algorithm (Overlay Stitch Meshing)
35. 40. The OSM Algorithm (Overlay Stitch Meshing)
36. 41. The OSM Algorithm (Overlay Stitch Meshing)
37. 42. The OSM Algorithm (Overlay Stitch Meshing)
38. 43. The OSM Algorithm (Overlay Stitch Meshing)
39. 44. The OSM Algorithm (Overlay Stitch Meshing)
40. 45. The OSM Algorithm (Overlay Stitch Meshing)
41. 46. The OSM Algorithm (Overlay Stitch Meshing)
42. 47. The OSM Algorithm (Overlay Stitch Meshing)
43. 48. The OSM Algorithm (Overlay Stitch Meshing)
44. 49. The OSM Algorithm (Overlay Stitch Meshing) <ul><li>An Overlay Edge is kept if </li></ul><ul><ul><li>1. It does not intersect the input, </li></ul></ul><ul><ul><li>OR </li></ul></ul><ul><ul><li>2. It forms a good intersection with the input. </li></ul></ul>at least 30 o
45. 50. Angle Guarantees
46. 51. Angle Guarantees
47. 52. Angle Guarantees We want to show that angles at stitch vertices are bounded by 170 o
48. 53. Angle Guarantees An Overlay Triangle
49. 54. Angle Guarantees An Overlay Triangle An Overlay Edge
50. 55. Angle Guarantees An Overlay Triangle An Overlay Edge Gap Ball
51. 56. Angle Guarantees A Good Intersection
52. 57. Angle Guarantees A Bad Intersection
53. 58. Angle Guarantees A Bad Intersection
54. 59. Angle Guarantees A Bad Intersection How Bad can it be?
56. 61. Angle Guarantees How Bad can it be? About 10 o Theorem: If any input edge makes a good intersection with an overlay edge then any other intersection on that edge is not too bad . About 170 o
57. 62. Size Bounds
58. 63. Size Bounds How big is the resulting triangulation?
59. 64. Size Bounds How big is the resulting triangulation? Goal: log(L/s)-competitive with optimal
60. 65. Local Feature Size lfs(x) = distance to second nearest input vertex. x lfs(x) Note: lfs is defined on the whole plane before we do any meshing.
61. 66. Ruppert’s Idea r c <ul><li>r =  (lfs(c)) </li></ul><ul><li>area(  ) =  (lfs(c) 2 ) </li></ul><ul><li># of triangles =  ( ss 1/lfs(x,y) 2 dxdy) </li></ul>
62. 67. Ruppert’s Idea r c <ul><li>r =  (lfs(c)) </li></ul><ul><li>area(  ) =  (lfs(c) 2 ) </li></ul><ul><li># of triangles =  ( ss 1/lfs(x,y) 2 dxdy) </li></ul>dy dx This represents a  (dxdy/lfs(x,y) 2 ) fraction of the triangle.
63. 68. Ruppert’s Idea r c <ul><li>r =  (lfs(c)) </li></ul><ul><li>area(  ) =  (lfs(c) 2 ) </li></ul><ul><li># of triangles =  ( ss lfs(x,y) -2 dxdy) </li></ul>Caveat : Only Works for meshes with bounded smallest angle.
64. 69. Extending Ruppert’s Idea An input edge e intersecting the overlay mesh # of triangles along e =  ( s z 2 e lfs(z) -1 dz) # of triangles =  ( ss lfs(x,y) -2 dxdy)
65. 70. Extending Ruppert’s Idea Now we can compute the size of our output mesh. We just need to compute these integrals. # of triangles along e =  ( s z 2 e lfs(z) -1 dz) # of triangles =  ( ss lfs(x,y) -2 dxdy)
66. 71. Output Size Stitch Vertices Added =  ( s z 2 E lfs(z) -1 dz) Overlay Mesh Size =  ( ss lfs(x,y) -2 dxdy) O(n log L/s) O(log L/s) £ |OPT| We’ll Prove this now
67. 72. What can we say about the optimal no-large-angle triangulation?
68. 73. Competitive Analysis Warm-up 90 o
69. 74. Competitive Analysis Warm-up ? o
70. 75. Competitive Analysis Warm-up
71. 76. Competitive Analysis Warm-up
72. 77. Competitive Analysis Warm-up Suppose we have a triangulation with all angles at least 170 o . the optimal
73. 78. Competitive Analysis Warm-up Suppose we have a triangulation with all angles at least 170 o . the optimal Every input edge is covered by empty lenses.
74. 79. Competitive Analysis This is what we have to integrate over. We show that in each lens, we put O(log (L/s)) points on the edge. In other words: s e’ 1/lfs(z) dz = O(log (L/s)) e’
75. 80. Competitive Analysis e’ s z 2 e’ 1/lfs(z) dz = O(log (L/s))
76. 81. Competitive Analysis s z 2 e’ 1/lfs(z) dz = O(log (L/s)) e’ 1 st trick: lfs ¸ s everywhere 2 nd trick: lfs ¸ ct for t 2 [0, l /2] t s z 2 e’ 1/lfs(z) dz · 2 s 0 s 1/s + 2 s s l /2 1/x dx = O(1) + O(log l /s) = O(log L/s) Parametrize e’ as [0, l ]
77. 82. Conclusions
78. 83. Conclusion <ul><li>A new algorithm for no-large-angle triangulation. </li></ul><ul><li>The output has bounded degree triangles. </li></ul><ul><li>The first log-competitive analysis for such an algorithm. </li></ul><ul><li>We used some of the high school calculus you thought you forgot. </li></ul>
79. 84. Where to go from here? <ul><li>3D? </li></ul><ul><li>Better angle bounds? </li></ul><ul><li>Leverage lower bound technology for constant competitive algorithm. </li></ul>
80. 85. Thank you.