19. Paying for the spread Optimal No-Large-Angle Triangulation
20. Paying for the spread What if we don’t allow small angles?
21. Paying for the spread O(L/s) triangles! What if we don’t allow small angles?
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
23. What to do? Small input angles can force even smaller ouput angles. [Shewchuk ’02]
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
64. Size Bounds How big is the resulting triangulation? Goal: log(L/s)-competitive with optimal
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.
66.
67.
68.
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)
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)
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
72. What can we say about the optimal no-large-angle triangulation?
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.
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’
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 ]