CS6100: Topics in Design and Analysis of Algorithms
Delaunay Triangulation John Augustine
CS6100 (Even 2012): Delaunay Triangulation
CS6100: Topics in Design and Analysis of Algorithms Delaunay - - PDF document
CS6100: Topics in Design and Analysis of Algorithms Delaunay Triangulation John Augustine CS6100 (Even 2012): Delaunay Triangulation Triangulation of a Planar Point Set A triangulation of P is planar subdivision of the plane in which (i) end
CS6100 (Even 2012): Delaunay Triangulation
2
CS6100 (Even 2012): Delaunay Triangulation 1
1, α′ 2, . . .}. We say that A(T ) > A(T ′) if for some
j
i.
CS6100 (Even 2012): Delaunay Triangulation 2
α′
1
α′
4
α′
3
α′
5
α′
2
α′
6
pi p j pk pl pi α4 α1 α3 α5 α2 α6 p j pk pl edge flip
CS6100 (Even 2012): Delaunay Triangulation 3
pi p j pk pl illegal
ℓ C p q r s a b
CS6100 (Even 2012): Delaunay Triangulation 4
CS6100 (Even 2012): Delaunay Triangulation 5
Vor(P) G
CS6100 (Even 2012): Delaunay Triangulation 6
CS6100 (Even 2012): Delaunay Triangulation 7
Cij pi p j contained in V(pi) contained in V(p j)
CS6100 (Even 2012): Delaunay Triangulation 8
CS6100 (Even 2012): Delaunay Triangulation 9
v f
CS6100 (Even 2012): Delaunay Triangulation 10
CS6100 (Even 2012): Delaunay Triangulation 11
pi p j pk pl C(pipj pk) pm C(pipj pm) e
CS6100 (Even 2012): Delaunay Triangulation 12
CS6100 (Even 2012): Delaunay Triangulation 13
p−1 p0 p−2
CS6100 (Even 2012): Delaunay Triangulation 14
pr pi pk p j pr p j pi pk pl pr lies in the interior of a triangle pr falls on an edge
= ⇒ pr
CS6100 (Even 2012): Delaunay Triangulation 15
Algorithm DELAUNAYTRIANGULATION(P)
1. Let p0 be the lexicographically highest point of P, that is, the rightmost among the points with largest y-coordinate. 2. Let p−1 and p−2 be two points in R2 sufficiently far away and such that P is contained in the triangle p0p−1p−2. 3. Initialize T as the triangulation consisting of the single triangle p0p−1p−2. 4. Compute a random permutation p1, p2,..., pn of P\{p0}. 5. for r ← 1 to n 6. do (∗ Insert pr into T: ∗) 7. Find a triangle pip jpk ∈ T containing pr. 8. if pr lies in the interior of the triangle pipjpk 9. then Add edges from pr to the three vertices of pipjpk, thereby splitting pipjpk into three triangles. 10. LEGALIZEEDGE(pr, pip j,T) 11. LEGALIZEEDGE(pr, p jpk,T) 12. LEGALIZEEDGE(pr, pkpi,T) 13. else (∗ pr lies on an edge of pip jpk, say the edge pip j ∗) 14. Add edges from pr to pk and to the third vertex pl of the other triangle that is incident to pip j, thereby splitting the two triangles incident to pip j into four triangles. 15. LEGALIZEEDGE(pr, pipl,T) 16. LEGALIZEEDGE(pr, pl p j,T) 17. LEGALIZEEDGE(pr, p jpk,T) 18. LEGALIZEEDGE(pr, pkpi,T)
CS6100 (Even 2012): Delaunay Triangulation 16
CS6100 (Even 2012): Delaunay Triangulation 17
∆1 ∆2 ∆3 ∆4 ∆3 ∆5 ∆4 ∆5 ∆1 ∆1 ∆2 ∆2 ∆3 ∆3 ∆1 ∆2 ∆3 ∆4 ∆4 ∆5 ∆6 ∆7 ∆7 ∆6 split ∆1 flip pip j flip pipk pr ∆1 ∆2 ∆3 ∆2 ∆3 pi p j pi pk
CS6100 (Even 2012): Delaunay Triangulation 18
LEGALIZEEDGE(pr, pipj,T) 1. (∗ The point being inserted is pr, and pip j is the edge of T that may need to be flipped. ∗) 2. if pip j is illegal 3. then Let pipjpk be the triangle adjacent to prpipj along pip j. 4. (∗ Flip pipj: ∗) Replace pipj with prpk. 5. LEGALIZEEDGE(pr, pipk,T) 6. LEGALIZEEDGE(pr, pkp j,T)
pr pi p j pk
CS6100 (Even 2012): Delaunay Triangulation 19
pi p j pl pr C C′
CS6100 (Even 2012): Delaunay Triangulation 20
pr pi pk p j pr p j pi pk pl pr lies in the interior of a triangle pr falls on an edge
CS6100 (Even 2012): Delaunay Triangulation 21
CS6100 (Even 2012): Delaunay Triangulation 22
CS6100 (Even 2012): Delaunay Triangulation 23
CS6100 (Even 2012): Delaunay Triangulation 24