Geometric Algorithms Delaunay Triangulations and Voronoi Diagrams - - PowerPoint PPT Presentation
Geometric Algorithms Delaunay Triangulations and Voronoi Diagrams - - PowerPoint PPT Presentation
Geometric Algorithms Delaunay Triangulations and Voronoi Diagrams Terrain Modeling height measurements p = ( x p , y p , z p ) Terrain Modeling height measurements p = ( x p , y p , z p ) projection ( p ) = ( p x , p y , 0) Terrain
Terrain Modeling
height measurements p = (xp, yp, zp)
Terrain Modeling
height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)
Terrain Modeling
height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)
Interpolation: triangulate & interpolate
Terrain Modeling
height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)
Interpolation: triangulate & interpolate within triangles
Terrain Modeling
height measurements p = (xp, yp, zp) projection π(p) = (px, py, 0)
Interpolation: triangulate & interpolate within triangles
What is a ‘good’ triangulation?
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P.
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
- outer face is complement of convex hull
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
- outer face is complement of convex hull
CH(P)
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
- outer face is complement of convex hull
CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has t(n, h) triangles and e(n, h) edges.
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
- outer face is complement of convex hull
CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has t(n, h) triangles and e(n, h) edges. Compute t and e!
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
- outer face is complement of convex hull
CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has t(n, h) triangles and e(n, h) edges. Compute t and e! Euler’s formula for connected plane graphs: # faces − # edges + # vertices = 2, also counting the outer face.
Triangulation of a Point Set
Def.: A triangulation of a point set P ⊂ R2 is a maximal planar subdivision with vertex set P. Obs.:
- all inner faces are triangles
- outer face is complement of convex hull
CH(P) Thm 1: Let P be a set of n non-collinear points and let h be the number of vertices of CH(P). Then every triangulation of P has (2n − 2 − h) triangles and (3n − 3 − h) edges.
Back to Height Interpolation
10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19
Lets look at the interpolation along an edge:
Back to Height Interpolation
10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19
Lets look at the interpolation along an edge:
Back to Height Interpolation
10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19
Lets look at the interpolation along an edge:
Back to Height Interpolation
10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19
height 985 height 23 Lets look at the interpolation along an edge:
Back to Height Interpolation
10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19
height 985 height 23 intuition: avoid ‘thin’ triangles! Lets look at the interpolation along an edge:
Back to Height Interpolation
10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19 10 6 20 36 28 1240 1000 980 990 1008 890 4 23 19
height 985 height 23 intuition: avoid ‘thin’ triangles!
- r: maximize the smallest angle within triangles!
Lets look at the interpolation along an edge:
Angle-Optimal Triangulations
Def.: T
A(T ) = (60◦, 60◦, 60◦, 60◦, 60◦, 60◦)
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.
Angle-Optimal Triangulations
Def.: T
A(T ) = (60◦, 60◦, 60◦, 60◦, 60◦, 60◦) T ′ A(T ′) = (30◦, 30◦, 30◦, 30◦, 120◦, 120◦)
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. For two triangulations T and T ′ of P define order A(T ) > A(T ′) as the lexicographical order.
Angle-Optimal Triangulations
Def.: T
A(T ) = (60◦, 60◦, 60◦, 60◦, 60◦, 60◦) T ′ A(T ′) = (30◦, 30◦, 30◦, 30◦, 120◦, 120◦)
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. For two triangulations T and T ′ of P define order A(T ) > A(T ′) as the lexicographical order. T is angle optimal, if A(T ) ≥ A(T ′) for all triangulations T ′ of P.
Edge Flips
Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. e T
Edge Flips
Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ e T
Edge Flips
Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ e T flip(T , e)
Edge Flips
Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ e T ′ T flip(T , e) e′
Edge Flips
Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ mini αi = 60◦ e T ′ T flip(T , e) e′
Edge Flips
Def.: Let T be a triangulation.An edge e of T is illegal,if the smallest angle of the triangles incident to e can be increased by flipping e. mini αi = 30◦ mini αi = 60◦ e Obs.: Let e be an illegal edge in T and let T ′ = flip(T , e). Then A(T ′) > A(T ). T ′ T flip(T , e) e′
Thales Theorem
a Thm 2: if ab is a diameter, then the angle at any third point on the circle c is 90◦. b
Thales Theorem
a Thm 2: if ab is a diameter, then the angle at any third point on the circle c is 90◦. b Thm 2′: 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
- utside C. Then ∡arb > ∡apb = ∡aqb > ∡asb,
where ∡abc denotes the smaller angle defined by three points a, b, c. a b c c′ e d ∠aeb < ∠acb = ∠ac′b < ∠adb c
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. proof sketch: p q r s C
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. proof sketch: p q r s
ϕpr ϕps ϕrq ϕsq θpr θps θrq θsq
ϕpr > θpr ϕps > θps ϕrq > θrq ϕsq > θsq C
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. proof sketch: p q r s
ϕpr ϕps ϕrq ϕsq θpr θps θrq θsq
ϕpr > θpr ϕps > θps ϕrq > θrq ϕsq > θsq ϕp ϕq ϕp = θrq + θsq ϕq = θpr + θps C
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation Are there legal triangulations?
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation while T has illegal edge e do flip(T , e) return T
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation while T has illegal edge e do flip(T , e) return T
terminates?
Legal Triangulations
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C). If p, q, r, s form a convex quadrilateral and s ∈ ∂C, then either pq or rs is illegal. Def.: A triangulation without illegal edges is called legal triangulation while T has illegal edge e do flip(T , e) return T
terminates, since A(T ) increases and #triangulations finite
Are we stuck?
We know: Every angle-optimal triangulation is legal. But is every legal triangulation angle-optimal?
. . . now for something completely different . . .
Voronoi Diagrams
Motivation
? It is a beautiful sunny day. You know where all of the locations
- f ice cream parlors in town and would like to know which one
is closest. How can we determine the closest ice cream parlor for every point on the map?
Motivation
? It is a beautiful sunny day. You know where all of the locations
- f ice cream parlors in town and would like to know which one
is closest. How can we determine the closest ice cream parlor for every point on the map?
Motivation
? It is a beautiful sunny day. You know where all of the locations
- f ice cream parlors in town and would like to know which one
is closest. How can we determine the closest ice cream parlor for every point on the map? !
Motivation
? It is a beautiful sunny day. You know where all of the locations
- f ice cream parlors in town and would like to know which one
is closest. How can we determine the closest ice cream parlor for every point on the map? ! The solution is a subdivision of the plane, called Voronoi diagram. It has many applications, e.g., in geography, physics, robotics
Voronoi Diagrams
Definition: The Voronoi diagram of n points {p1, . . . , pn} in the plane is the subdivision of the plane into n cells, such that a point q is in the cell
- f pi if and only if dist(q, pi) < dist(q, pj) for all i=j.
Voronoi Diagrams
long history
- Descartes 1644
- Dirichlet 1850
- Voronoi 1907
Definition: The Voronoi diagram of n points {p1, . . . , pn} in the plane is the subdivision of the plane into n cells, such that a point q is in the cell
- f pi if and only if dist(q, pi) < dist(q, pj) for all i=j.
Voronoi Diagrams
for 2 points
Voronoi Diagrams
for 2 points
Voronoi Diagrams
for 2 points
Voronoi Diagrams
for 2 points
Voronoi Diagrams
p q b(p, q) = {x ∈ R2 : |xp| = |xq|}
bisector of p and q
for 2 points
Voronoi Diagrams
p q b(p, q) h(p, q) = {x ∈ R2 : |xp| = |xq|} = {x : |xp| < |xq|}
bisector of p and q
- pen half plane
for 2 points
Voronoi Diagrams
p q b(p, q) h(p, q) h(q, p) = {x ∈ R2 : |xp| = |xq|} = {x : |xp| < |xq|} = {x : |xq| < |xp|}
bisector of p and q
- pen half plane
- pen half plane
for 2 points
Voronoi Diagrams
P = {p1, p2, . . . , pn} for n points
Voronoi Diagrams
for n points
Voronoi Diagrams
Vor(P) = Voronoi diagram
- f P
for n points
Voronoi Diagrams
Questions: 1) What are Voronoi cells, edges and vertices?
Voronoi Diagrams
Questions: 1) What are Voronoi cells, edges and vertices? 2) Are Voronoi cells convex?
Voronoi Diagrams
Let P be a set of points in th plane and p, p′, p′′ ∈ P.
Voronoi Diagrams
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram p p′ p′′
Voronoi Diagrams
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram p p′ p′′
Voronoi Diagrams
V({p}) = Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram
- Voronoi cell
p p′ p′′
Voronoi Diagrams
V({p}) = Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) Voronoi diagram
- Voronoi cell
p p′ p′′ = V(p)
Voronoi Diagrams
V({p}) = Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P)
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- Voronoi diagram
- Voronoi cell
p p′ p′′ = V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P)
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- Voronoi diagram
- Voronoi cell
p p′ p′′ = V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P)
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- Voronoi diagram
- Voronoi cell
p p′ p′′ = V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′})
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′})
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) =
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = i.e. without endpoints , V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = i.e. without endpoints , V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
- Voronoi vertex
V({p, p′, p′′})
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = i.e. without endpoints , V(p)
Voronoi Diagrams
V({p}) = =
q=p h(p, q)
Let P be a set of points in th plane and p, p′, p′′ ∈ P. Vor(P) V({p, p′}) ∂V(p) ∩ ∂V(p′) = rel-int
- x ∈ R2 : |xp| < |xq| ∀q ∈ P \ {p}
- {x : |xp| = |xp′| and |xp| < |xq| ∀q = p, p′}
- Voronoi vertex
= ∂V(p) ∩ ∂V(p′) ∩ ∂V(p′′) V({p, p′, p′′})
- Voronoi edge
Voronoi diagram
- Voronoi cell
p p′ p′′ = = i.e. without endpoints , V(p)
Characterization
Definition: Let q be a point. Define CP (q) as the largest disk with center q containing no points of P in its interior. q
Characterization
Definition: Let q be a point. Define CP (q) as the largest disk with center q containing no points of P in its interior. q CP (q)
Characterization
Definition: Let q be a point. Define CP (q) as the largest disk with center q containing no points of P in its interior. q CP (q) Obs.:
- A point q is a Voronoi vertex
⇔ |CP (q) ∩ P| ≥ 3,
- the bisector b(pi, pj) defines a Voronoi edge
⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.
Delaunay Triangulation
Def.: The graph G = (P, E) with E = {pq | V(p) und V(q) are adjacent} is called the dual graph of Vor(P). Let Vor(P) be the Voronoi diagram of P.
Delaunay Triangulation
Def.: The graph G = (P, E) with E = {pq | V(p) und V(q) are adjacent} is called the dual graph of Vor(P). Let Vor(P) be the Voronoi diagram of P. G
Delaunay Triangulation
Def.: The graph G = (P, E) with E = {pq | V(p) und V(q) are adjacent} is called the dual graph of Vor(P). Let Vor(P) be the Voronoi diagram of P. Def.: The straight-line drawing of G is called Delaunay graph DG(P). DG(P)
Properties
Thm 3: DG(P) has no crossing edges.
Properties
Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e.
Ci j pi pj in V( pi) in V( pj) pk pl
⇒ pq can’t intersect another edge
Suppose pipj is crossed by pkpl. Every circle with pk, pl has to contain either pi or pj. Contradiction.
Properties
Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e. Obs.: A voronoi vertex v in Vor(P) of degree k corresponds to a convex k-gon in DG(P).
Properties
Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e. Obs.: A voronoi vertex v in Vor(P) of degree k corresponds to a convex k-gon in DG(P). If P is in general position (no 4 points on a circle), then all (inner) faces of DG(P) are triangles.
Properties
Thm 3: DG(P) has no crossing edges. proof sketch: the bisector b(p, q) defines a Voronoi edge ⇔ ∃r ∈ b(p, q) with CP (r) ∩ P = {p, q}. the edge pq is in DG(P) ⇔ there is an empty circle Cp,q with p and q on its boundary. i.e. Obs.: A voronoi vertex v in Vor(P) of degree k corresponds to a convex k-gon in DG(P). If P is in general position (no 4 points on a circle), then all (inner) faces of DG(P) are triangles. A triangulation of DG(P) is called Delaunay triangulation.
Empty-Circle Property
Theorem about Voronoi diagrams:
- a point q is a Voronoi vertex
⇔ |CP (q) ∩ P| ≥ 3,
- the bisector b(pi, pj) defines a Voronoi edge
⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.
Empty-Circle Property
Theorem about Voronoi diagrams:
- a point q is a Voronoi vertex
⇔ |CP (q) ∩ P| ≥ 3,
- the bisector b(pi, pj) defines a Voronoi edge
⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.
Thm 4: Let P be a set of points.
- points p, q, r are vertices of the same face in DG(P) ⇔
circle through p, q, r is empty
- edge pq is in DG(P)
⇔ there is an empty circle Cp,q through p and q
Empty-Circle Property
Theorem about Voronoi diagrams:
- a point q is a Voronoi vertex
⇔ |CP (q) ∩ P| ≥ 3,
- the bisector b(pi, pj) defines a Voronoi edge
⇔ ∃q ∈ b(pi, pj) with CP (q) ∩ P = {pi, pj}.
Thm 4: Let P be a set of points.
- points p, q, r are vertices of the same face in DG(P) ⇔
circle through p, q, r is empty
- edge pq is in DG(P)
⇔ there is an empty circle Cp,q through p and q
Corollary: Let P be a set of points and T a triangulation of P. T is a Delaunay triangulation ⇔ circumcircle of every triangle is empty.
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. proof sketch: "‘⇐"’ obvious, use
Lemma 1: Let ∆prq and ∆pqs be two adjacent triangles in T and C the circumcircle of ∆prq. Then: pq illegal ⇔ s ∈ int(C).
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. proof sketch: p q r s "‘⇒"’
- suppose s in the interior of circle of pqr
- let pr be the edge maximizing ∠psr
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. t proof sketch: p q r s "‘⇒"’
- suppose s in the interior of circle of pqr
- let pr be the edge maximizing ∠psr
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. t proof sketch: p q r s "‘⇒"’
- suppose s in the interior of circle of pqr
- let pr be the edge maximizing ∠psr
- consider t adjacent to p and r
- s also lies in the circle of prt
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. t proof sketch: p q r s "‘⇒"’
- suppose s in the interior of circle of pqr
- let pr be the edge maximizing ∠psr
- consider t adjacent to p and r
- s also lies in the circle of prt
Thales theorem: ∠tsr > ∠psr Contradiction to choice of pr
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique.
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique we know: T angle optimal ⇒ T legal
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique we know: T angle optimal ⇒ T legal ⇒ angle-optimal triangulation is DG(P)!
Legal vs Delaunay
Thm 5: Let P be a set of points in R2. A triangulation T of P is legal if and only if T is a Delaunay triangulation. Obs.: If P is in general position, then the Delaunay triangulation of P is unique. ⇒ legal triangulation unique we know: T angle optimal ⇒ T legal ⇒ angle-optimal triangulation is DG(P)! Is P not in general position, then the smallest angle in every triangulation of the "‘large"’ faces in DG(P) is the same. (proof uses Thales theorem)
Randomized Incremental Construction
Randomized Incremental Construction
DelaunayTriangulation(P) Initialize T as a large triangle ∆(p0, p−1, p−2) containing all points from P Compute a random permutation of p1, . . . , pn for r ← 1 to n do Insert(pr, T ) Discard p0, p−1 and p−2 with all their incident edges return T P p−1 p−2 p0
Randomized Incremental Construction
Insert(pr, T ) Find triangle T containing pr if pr lies in triangle pipjpk then add edges from pr to pi, pj, pk LegalizeEdge(pr, pipj, T ) LegalizeEdge(pr, pjpk, T ) LegalizeEdge(pr, pkpi, T ) else add edges from pr to pl, pk LegalizeEdge(pr, pipl, T ) LegalizeEdge(pr, plpj, T ) LegalizeEdge(pr, pjpk, T ) LegalizeEdge(pr, pkpi, T ) // pr lies of edge pipj pi pr pk pj pi pl pk pr pj
Randomized Incremental Construction
LegalizeEdge(pr, pipj, T ) if pipj is illegal then let pipjph be the adjacent triangle replace pipj by prph LegalizeEdge(pr, pjph, T ) LegalizeEdge(pr, phpi, T ) // Edge flip ph pj pi pr
Correctness
- 1. All edges inserted are legal
- All edges inserted are adjacent to pr.
Correctness
- 1. All edges inserted are legal
- All edges inserted are adjacent to pr.
- All edges inserted are Delaunay edges.
pr pr pj pi pr pl
Correctness
- 1. All edges inserted are legal
- 2. All other edges are legal
follows from Lemma 1: an edge can only be illegal if it is incident to a new triangle.
- All edges inserted are adjacent to pr.
- All edges inserted are Delaunay edges.
pr pr pj pi pr pl
Initialization
Choose p0, p−1, p−2 far enough away from P, such that they lie in none of the circles of P and such that P lies in their triangle. P p−1 p−2 p0
Initialization
better: Treat p0, p−1, p−2 symbolically by modifying tests/predicates used for point location and testing illegal edges. P p−1 p−2 p0
Search Structure
build search structure for point location: directed acyclic graph with
- leaves: current triangles
- inner nodes: deleted triangles
∆1 ∆2 ∆3 ∆1 ∆2 ∆3
Search Structure
build search structure for point location: directed acyclic graph with
- leaves: current triangles
- inner nodes: deleted triangles
∆1 ∆2 ∆3 ∆1 ∆2 ∆3 split pr pi pj ∆2 ∆3 ∆1 ∆1 ∆2 ∆3
Search Structure
build search structure for point location: directed acyclic graph with
- leaves: current triangles
- inner nodes: deleted triangles
∆1 ∆2 ∆3 ∆1 ∆2 ∆3 split pr pi pj ∆2 ∆3 ∆1 ∆1 ∆2 ∆3 flip pipj pi pk ∆4 ∆5 ∆5 ∆4 ∆1 ∆2 ∆3
Search Structure
build search structure for point location: directed acyclic graph with
- leaves: current triangles
- inner nodes: deleted triangles
∆1 ∆2 ∆3 ∆1 ∆2 ∆3 split pr pi pj ∆2 ∆3 ∆1 ∆1 ∆2 ∆3 flip pipj pi pk ∆4 ∆5 ∆5 ∆4 ∆1 ∆2 ∆3 flip pipk ∆6 ∆7 ∆7 ∆6 ∆5 ∆4 ∆1 ∆2 ∆3
Analysis
Lemma: The expected number of triangles created is at most 9n + 1 = O(n).
Analysis
Lemma: The expected number of triangles created is at most 9n + 1 = O(n).
How many triangles are created when pr is inserted?
proof:
Analysis
Lemma: The expected number of triangles created is at most 9n + 1 = O(n).
How many triangles are created when pr is inserted?
proof:
- Every point in p1, . . . , pr has the same probability 1/r to be the last
point.
backwards analysis:
Analysis
Lemma: The expected number of triangles created is at most 9n + 1 = O(n).
How many triangles are created when pr is inserted?
proof:
- Every point in p1, . . . , pr has the same probability 1/r to be the last
point.
backwards analysis:
- expected degree of pr is ≤ 6
Analysis
Lemma: The expected number of triangles created is at most 9n + 1 = O(n).
How many triangles are created when pr is inserted?
proof:
- Every point in p1, . . . , pr has the same probability 1/r to be the last
point.
backwards analysis:
- expected degree of pr is ≤ 6
- number of triangles created at pr is ≤ 2(degree(pr)) − 3
Analysis
Lemma: The expected number of triangles created is at most 9n + 1 = O(n).
How many triangles are created when pr is inserted?
proof:
- Every point in p1, . . . , pr has the same probability 1/r to be the last
point.
backwards analysis:
- expected degree of pr is ≤ 6
- number of triangles created at pr is ≤ 2(degree(pr)) − 3
- overall ≤ 2 ∗ 6 − 3 = 9; plus 1 for the outer triangle