Overlay Stitch Meshing

1,062 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,062
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
2
Comments
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
  13. 18. Paying for the spread L s Spread = L/s
  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?
  55. 60. Angle Guarantees How Bad can it be? About 10 o About 170 o
  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.

×