Академический Документы
Профессиональный Документы
Культура Документы
Delaunay Triangulations
Computational Geometry
Lecture 12: Delaunay Triangulations
Computational Geometry
Motivation: Terrains
a terrain is the graph of a function f : A R2 R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation
Computational Geometry
Motivation: Terrains
a terrain is the graph of a function f : A R2 R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation
Computational Geometry
Motivation: Terrains
a terrain is the graph of a function f : A R2 R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation
Computational Geometry
Motivation: Terrains
a terrain is the graph of a function f : A R2 R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation
Computational Geometry
Motivation: Terrains
0 10 1000 q 980 990 1008 4 890 interpolated height = 985 0 10 6 1000 q 980 990 1008 4 890 interpolated height = 23 28 23 6 28 23 20 36 20 36
a terrain is the graph of a function f : A R2 R we know only height values for a set of measurement points how can we interpolate the height at other points? using a triangulation but which?
Computational Geometry
Triangulation
Let P = {p1 , . . . , pn } be a point set. A triangulation of P is a maximal planar subdivision with vertex set P.
Computational Geometry
Triangulation
Let P = {p1 , . . . , pn } be a point set. A triangulation of P is a maximal planar subdivision with vertex set P. Complexity: 2n 2 k triangles 3n 3 k edges where k is the number of points in P on the convex hull of P.
Computational Geometry
Let T be a triangulation of P with m triangles and 3m vertices. Its angle vector is A(T ) = (1 , . . . , 3m ) where 1 , . . . , 3m are the angles of T sorted by increasing value. Let T be another triangulation of P. We dene A(T ) > A(T ) if A(T ) is lexicographically larger than A(T ). T is angle optimal if A(T ) A(T ) for all triangulations T of P.
2 5 4 1 6 3
A(T ) = (1 , . . . , 6 )
Computational Geometry
Let T be a triangulation of P with m triangles and 3m vertices. Its angle vector is A(T ) = (1 , . . . , 3m ) where 1 , . . . , 3m are the angles of T sorted by increasing value. Let T be another triangulation of P. We dene A(T ) > A(T ) if A(T ) is lexicographically larger than A(T ). T is angle optimal if A(T ) A(T ) for all triangulations T of P.
2 5 4 1 6 3
A(T ) = (1 , . . . , 6 )
Computational Geometry
Let T be a triangulation of P with m triangles and 3m vertices. Its angle vector is A(T ) = (1 , . . . , 3m ) where 1 , . . . , 3m are the angles of T sorted by increasing value. Let T be another triangulation of P. We dene A(T ) > A(T ) if A(T ) is lexicographically larger than A(T ). T is angle optimal if A(T ) A(T ) for all triangulations T of P.
2 5 4 1 6 3
A(T ) = (1 , . . . , 6 )
Computational Geometry
Edge Flipping
pl 2 1 4 3 5 6 pi pk pj edge ip 2 1 3 pk pl 4 pj 6 5
pi
Change in angle vector: 1 , . . . , 6 are replaced by 1 , . . . , 6 . The edge e = pi pj is illegal if min1i6 i < min1i6 i . Flipping an illegal edge increases the angle vector.
Computational Geometry
Edge Flipping
pl 2 1 4 3 5 6 pi pk pj edge ip 2 1 3 pk pl 4 pj 6 5
pi
Change in angle vector: 1 , . . . , 6 are replaced by 1 , . . . , 6 . The edge e = pi pj is illegal if min1i6 i < min1i6 i . Flipping an illegal edge increases the angle vector.
Computational Geometry
Edge Flipping
pl 2 1 4 3 5 6 pi pk pj edge ip 2 1 3 pk pl 4 pj 6 5
pi
Change in angle vector: 1 , . . . , 6 are replaced by 1 , . . . , 6 . The edge e = pi pj is illegal if min1i6 i < min1i6 i . Flipping an illegal edge increases the angle vector.
Computational Geometry
Edge Flipping
pl 2 1 4 3 5 6 pi pk pj edge ip 2 1 3 pk pl 4 pj 6 5
pi
Change in angle vector: 1 , . . . , 6 are replaced by 1 , . . . , 6 . The edge e = pi pj is illegal if min1i6 i < min1i6 i . Flipping an illegal edge increases the angle vector.
Computational Geometry
Computational Geometry
Lemma: The edge pi pj is illegal if and only if pl lies in the interior of the circle C.
pl pj pi pk illegal
Computational Geometry
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 of . Suppose that p, q lie on C, r lies inside C, and s lies outside C. Then arb > apb = aqb > asb, where abc denotes the smaller angle dened by three points a, b, c.
b a C
Computational Geometry
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 of . Suppose that p, q lie on C, r lies inside C, and s lies outside C. Then arb > apb = aqb > asb,
b a C
pl
pj pi pk illegal
Computational Geometry
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 of . Suppose that p, q lie on C, r lies inside C, and s lies outside C. Then arb > apb = aqb > asb,
b a C
< <
pl
pj
pi
pk
Computational Geometry Lecture 12: Delaunay Triangulations
illegal
Legal Triangulations
A legal triangulation is a triangulation that does not contain any illegal edge.
Computational Geometry
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 pi pj 2. do ( Flip pi pj ) 3. Let pi pj pk and pi pj pl be the two triangles adjacent to pi pj . 4. Remove pi pj from T , and add pk pl instead. 5. return T
Computational Geometry
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 pi pj 2. do ( Flip pi pj ) 3. Let pi pj pk and pi pj pl be the two triangles adjacent to pi pj . 4. Remove pi pj from T , and add pk pl instead. 5. return T Question: Why does this algorithm terminate?
Computational Geometry
Computational Geometry
Vor(P)
Computational Geometry
Vor(P)
Computational Geometry
Vor(P)
DG(P)
Computational Geometry
Vor(P)
DG(P)
Computational Geometry
Ci j pj contained in V( p j )
Computational Geometry
Delaunay Triangulation
If the point set P is in general position then the Delaunay graph is a triangulation.
Computational Geometry
Computational Geometry
Computational Geometry
Theorem: Let P be a set of points in the plane. Any angle-optimal triangulation of P is a Delaunay triangulation of P. Furthermore, any Delaunay triangulation of P maximizes the minimum angle over all triangulations of P.
Computational Geometry
pr falls on an edge pi
pr
pk
pj
Computational Geometry
pj
pk
pr
pi
Computational Geometry
pr
Computational Geometry
pr
All edges created are incident to pr . Correctness: Are new edges legal?
Computational Geometry
pj
pl
pr C C
pi
Correctness: For any new edge there is an empty circle through endpoints. New edges are legal.
Computational Geometry
Initializing triangulation: treat p1 and p2 symbolically. No actual coordinates. Modify tests for point location and illegal edges to work as if far away. Point location: search data structure. Point visits triangles of previous triangulations that contain it.
Computational Geometry
1 2 3 pi 5 4 3 pk
4 ip pi pk 1 2
pr
Analysis
1 2
Expected total number of triangles created in O(n) Expected total number of triangles visited while search point location data structure: O(n log n)
Computational Geometry
Analysis
Lemma: Total number of triangles created is at most 9n + 1. How many triangles are created when inserting pr ? Backwards analysis: Any point of p1 , . . . , pr has the same probability 1/r to be pr . Expected degree of pr 6. Number of triangles created 2degree(pr ) 3 (Why? Count ips.) 263 = 9 + outer triangle
Computational Geometry
Analysis
Lemma: Total number of triangles created is at most 9n + 1. How many triangles are created when inserting pr ? Backwards analysis: Any point of p1 , . . . , pr has the same probability 1/r to be pr . Expected degree of pr 6. Number of triangles created 2degree(pr ) 3 (Why? Count ips.) 263 = 9 + outer triangle
Computational Geometry
Analysis
Lemma: Total number of triangles created is at most 9n + 1. How many triangles are created when inserting pr ? Backwards analysis: Any point of p1 , . . . , pr has the same probability 1/r to be pr . Expected degree of pr 6. Number of triangles created 2degree(pr ) 3 (Why? Count ips.) 263 = 9 + outer triangle
Computational Geometry
Analysis
Lemma: Total number of triangles created is at most 9n + 1. How many triangles are created when inserting pr ? Backwards analysis: Any point of p1 , . . . , pr has the same probability 1/r to be pr . Expected degree of pr 6. Number of triangles created 2degree(pr ) 3 (Why? Count ips.) 263 = 9 + outer triangle
Computational Geometry
Analysis
Lemma: Total number of triangles created is at most 9n + 1. How many triangles are created when inserting pr ? Backwards analysis: Any point of p1 , . . . , pr has the same probability 1/r to be pr . Expected degree of pr 6. Number of triangles created 2degree(pr ) 3 (Why? Count ips.) 263 = 9 + outer triangle
Computational Geometry
Analysis
Lemma: Total number of triangles created is at most 9n + 1. How many triangles are created when inserting pr ? Backwards analysis: Any point of p1 , . . . , pr has the same probability 1/r to be pr . Expected degree of pr 6. Number of triangles created 2degree(pr ) 3 (Why? Count ips.) 263 = 9 + outer triangle
Computational Geometry
Analysis
Theorem: The Delaunay triangulation of n points can be computed in O(n log n) expected time.
Computational Geometry