computational geometry
play

Computational Geometry Lecture 12: Delaunay Triangulations 1 - PowerPoint PPT Presentation

Introduction Triangulations Delaunay Triangulations Delaunay Triangulations Computational Geometry Lecture 12: Delaunay Triangulations 1 Computational Geometry Lecture 12: Delaunay Triangulations Introduction Triangulations Delaunay


  1. Introduction Triangulations Delaunay Triangulations Delaunay Triangulations Computational Geometry Lecture 12: Delaunay Triangulations 1 Computational Geometry Lecture 12: Delaunay Triangulations

  2. Introduction Triangulations Delaunay Triangulations Motivation: Terrains a terrain is the graph of a function f : A ⊂ R 2 → R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation 2 Computational Geometry Lecture 12: Delaunay Triangulations

  3. Introduction Triangulations Delaunay Triangulations Motivation: Terrains a terrain is the graph of a function f : A ⊂ R 2 → R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation 3 Computational Geometry Lecture 12: Delaunay Triangulations

  4. Introduction Triangulations Delaunay Triangulations Motivation: Terrains a terrain is the graph of a function f : A ⊂ R 2 → R ? we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation 4 Computational Geometry Lecture 12: Delaunay Triangulations

  5. Introduction Triangulations Delaunay Triangulations Motivation: Terrains a terrain is the graph of a function f : A ⊂ R 2 → R ? we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation 5 Computational Geometry Lecture 12: Delaunay Triangulations

  6. Introduction Triangulations Delaunay Triangulations Motivation: Terrains 1000 20 0 980 q 36 10 a terrain is the graph of a 990 function f : A ⊂ R 2 → R 6 1008 28 we know only height values for a 23 4 890 interpolated height = 985 set of measurement points 20 0 1000 how can we interpolate the q 980 height at other points? 36 10 990 using a triangulation 6 28 1008 – but which? 23 4 890 interpolated height = 23 6 Computational Geometry Lecture 12: Delaunay Triangulations

  7. Introduction Triangulations Delaunay Triangulations Triangulation Let P = { p 1 ,..., p n } be a point set. A triangulation of P is a maximal planar subdivision with vertex set P . 7 Computational Geometry Lecture 12: Delaunay Triangulations

  8. Introduction Triangulations Delaunay Triangulations Triangulation Let P = { p 1 ,..., p n } be a point set. A triangulation of P is a maximal planar subdivision with vertex set P . Complexity: 2 n − 2 − k triangles 3 n − 3 − k edges where k is the number of points in P on the convex hull of P . 8 Computational Geometry Lecture 12: Delaunay Triangulations

  9. Introduction Triangulations Delaunay Triangulations Angle Vector of a Triangulation Let T be a triangulation of P with m triangles and 3 m vertices. Its angle vector is A ( T ) = ( α 1 ,..., α 3 m ) where α 1 ,..., α 3 m are the angles of T sorted by increasing value. Let T ′ be another triangulation of P . α 5 α 1 α 4 We define A ( T ) > A ( T ′ ) if A ( T ) is lexicographically larger than A ( T ′ ) . α 6 α 3 α 2 T is angle optimal if A ( T ) ≥ A ( T ′ ) for all triangulations T ′ of P . A ( T ) = ( α 1 ,..., α 6 ) 9 Computational Geometry Lecture 12: Delaunay Triangulations

  10. Introduction Triangulations Delaunay Triangulations Angle Vector of a Triangulation Let T be a triangulation of P with m triangles and 3 m vertices. Its angle vector is A ( T ) = ( α 1 ,..., α 3 m ) where α 1 ,..., α 3 m are the angles of T sorted by increasing value. Let T ′ be another triangulation of P . α 5 α 1 α 4 We define A ( T ) > A ( T ′ ) if A ( T ) is lexicographically larger than A ( T ′ ) . α 6 α 3 α 2 T is angle optimal if A ( T ) ≥ A ( T ′ ) for all triangulations T ′ of P . A ( T ) = ( α 1 ,..., α 6 ) 10 Computational Geometry Lecture 12: Delaunay Triangulations

  11. Introduction Triangulations Delaunay Triangulations Angle Vector of a Triangulation Let T be a triangulation of P with m triangles and 3 m vertices. Its angle vector is A ( T ) = ( α 1 ,..., α 3 m ) where α 1 ,..., α 3 m are the angles of T sorted by increasing value. Let T ′ be another triangulation of P . α 5 α 1 α 4 We define A ( T ) > A ( T ′ ) if A ( T ) is lexicographically larger than A ( T ′ ) . α 6 α 3 α 2 T is angle optimal if A ( T ) ≥ A ( T ′ ) for all triangulations T ′ of P . A ( T ) = ( α 1 ,..., α 6 ) 11 Computational Geometry Lecture 12: Delaunay Triangulations

  12. Introduction Triangulations Delaunay Triangulations Edge Flipping p l p l p j p j α ′ α 3 α 2 α ′ edge flip 4 α ′ 6 α 5 2 α ′ α 1 α 6 5 α ′ α ′ α 4 1 p i p i 3 p k p k Change in angle vector: α 1 ,..., α 6 are replaced by α ′ 1 ,..., α ′ 6 . The edge e = p i p j is illegal if min 1 ≤ i ≤ 6 α i < min 1 ≤ i ≤ 6 α ′ i . Flipping an illegal edge increases the angle vector. 12 Computational Geometry Lecture 12: Delaunay Triangulations

  13. Introduction Triangulations Delaunay Triangulations Edge Flipping p l p l p j p j α ′ α 3 α 2 α ′ edge flip 4 α ′ 6 α 5 2 α ′ α 1 α 6 5 α ′ α ′ α 4 1 p i p i 3 p k p k Change in angle vector: α 1 ,..., α 6 are replaced by α ′ 1 ,..., α ′ 6 . The edge e = p i p j is illegal if min 1 ≤ i ≤ 6 α i < min 1 ≤ i ≤ 6 α ′ i . Flipping an illegal edge increases the angle vector. 13 Computational Geometry Lecture 12: Delaunay Triangulations

  14. Introduction Triangulations Delaunay Triangulations Edge Flipping p l p l p j p j α ′ α 3 α 2 α ′ edge flip 4 α ′ 6 α 5 2 α ′ α 1 α 6 5 α ′ α ′ α 4 1 p i p i 3 p k p k Change in angle vector: α 1 ,..., α 6 are replaced by α ′ 1 ,..., α ′ 6 . The edge e = p i p j is illegal if min 1 ≤ i ≤ 6 α i < min 1 ≤ i ≤ 6 α ′ i . Flipping an illegal edge increases the angle vector. 14 Computational Geometry Lecture 12: Delaunay Triangulations

  15. Introduction Triangulations Delaunay Triangulations Edge Flipping p l p l p j p j α ′ α 3 α 2 α ′ edge flip 4 α ′ 6 α 5 2 α ′ α 1 α 6 5 α ′ α ′ α 4 1 p i p i 3 p k p k Change in angle vector: α 1 ,..., α 6 are replaced by α ′ 1 ,..., α ′ 6 . The edge e = p i p j is illegal if min 1 ≤ i ≤ 6 α i < min 1 ≤ i ≤ 6 α ′ i . Flipping an illegal edge increases the angle vector. 15 Computational Geometry Lecture 12: Delaunay Triangulations

  16. Introduction Triangulations Delaunay Triangulations Characterisation of Illegal Edges How do we determine if an edge is illegal? 16 Computational Geometry Lecture 12: Delaunay Triangulations

  17. Introduction Triangulations Delaunay Triangulations Characterisation of Illegal Edges How do we determine if an edge is illegal? p l Lemma: The edge p i p j is illegal if and only if p l lies in the interior p j of the circle C . p i p k illegal 17 Computational Geometry Lecture 12: Delaunay Triangulations

  18. Introduction Triangulations Delaunay Triangulations Thales Theorem s q p r Theorem: Let C be a circle, ℓ a line intersecting C in points a and b , and p , q , r , s points lying on the same side b of ℓ . Suppose that p , q lie on C , r lies ℓ a C inside C , and s lies outside C . Then ∡ arb > ∡ apb = ∡ aqb > ∡ asb , where ∡ abc denotes the smaller angle defined by three points a , b , c . 18 Computational Geometry Lecture 12: Delaunay Triangulations

  19. Introduction Triangulations Delaunay Triangulations Thales Theorem s q p r Theorem: Let C be a circle, ℓ a line intersecting C in points a and b , and p , q , r , s points lying on the same side b of ℓ . Suppose that p , q lie on C , r lies ℓ a C inside C , and s lies outside C . Then ∡ arb > ∡ apb = ∡ aqb > ∡ asb , p l where ∡ abc denotes the smaller p j angle defined by three points a , b , c . p i p k illegal 19 Computational Geometry Lecture 12: Delaunay Triangulations

  20. Introduction Triangulations Delaunay Triangulations Thales Theorem s q p r Theorem: Let C be a circle, ℓ a line intersecting C in points a and b , and p , q , r , s points lying on the same side b of ℓ . Suppose that p , q lie on C , r lies ℓ a C inside C , and s lies outside C . Then α ′ < α ∡ arb > ∡ apb = ∡ aqb > ∡ asb , β ′ < β p l where ∡ abc denotes the smaller α β p j angle defined by three points a , b , c . α ′ p i β ′ p k illegal 20 Computational Geometry Lecture 12: Delaunay Triangulations

  21. Introduction Triangulations Delaunay Triangulations Legal Triangulations A legal triangulation is a triangulation that does not contain any illegal edge. 21 Computational Geometry Lecture 12: Delaunay Triangulations

  22. Introduction Triangulations Delaunay Triangulations Legal Triangulations A legal triangulation is a triangulation that does not contain any illegal edge. Algorithm LegalTriangulation ( T ) Input. A triangulation T of a point set P . Output. A legal triangulation of P . 1. while T contains an illegal edge p i p j 2. do ( ∗ Flip p i p j ∗ ) 3. Let p i p j p k and p i p j p l be the two triangles adjacent to p i p j . 4. Remove p i p j from T , and add p k p l instead. 5. return T 22 Computational Geometry Lecture 12: Delaunay Triangulations

Recommend


More recommend