lecture 4: triangulating a polygon - university of florida
TRANSCRIPT
![Page 1: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/1.jpg)
MotivationTriangulating a polygon
Triangulating a polygon
Computational Geometry
Lecture 4: Triangulating a polygon
Computational Geometry Lecture 4: Triangulating a polygon
![Page 2: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/2.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
Polygons and visibility
Two points in a simple polygon can see each other if theirconnecting line segment is in the polygon
Computational Geometry Lecture 4: Triangulating a polygon
![Page 3: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/3.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
Art gallery problem
Art Galley Problem: How many cameras are needed toguard a given art gallery so that every point is seen?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 4: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/4.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
Art gallery problem
In geometry terminology: How many points are needed in asimple polygon with n vertices so that every point in thepolygon is seen?
The optimization problem is computationally difficult
Art Galley Theorem: bn/3c cameras are occasionallynecessary but always sufficient
Computational Geometry Lecture 4: Triangulating a polygon
![Page 5: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/5.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
Triangulation, diagonal
Why are bn/3c always enough?
Assume polygon P is triangulated: adecomposition of P into disjointtriangles by a maximal set ofnon-intersecting diagonals
Diagonal of P : open line segmentthat connects two vertices of P andfully lies in the interior of P
Computational Geometry Lecture 4: Triangulating a polygon
![Page 6: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/6.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
A triangulation always exists
Lemma: A simple polygon with n verticescan always be triangulated, and alwayshave n− 2 triangles
Proof: Induction on n. If n = 3, it istrivial
Assume n > 3. Consider the leftmostvertex v and its two neighbors u and w.Either uw is a diagonal (case 1), or part ofthe boundary of P is in 4uvw (case 2)
Choose the vertex t in 4uvw farthest fromthe line through u and w, then vt must bea diagonal
v
v
u
u
w
w
Computational Geometry Lecture 4: Triangulating a polygon
![Page 7: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/7.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
A triangulation always exists
In case 1, uw cuts the polygon into a triangle and a simplepolygon with n− 1 vertices, and we apply induction
In case 2, vt cuts the polygon into two simple polygons withm and n−m + 2 vertices 3 ≤ m ≤ n− 1, and we also applyinduction
By induction, the two polygons can be triangulated usingm− 2 and n−m + 2− 2 = n−m triangles. So the originalpolygon is triangulated using m− 2 + n−m = n− 2triangles �
Computational Geometry Lecture 4: Triangulating a polygon
![Page 8: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/8.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
A 3-coloring always exists
Observe: the dual of a triangulated simplepolygon is a tree
Lemma: The vertices of a triangulatedsimple polygon can always be 3-colored
Proof: Induction. True for a triangle
Every tree has a leaf. Remove thecorresponding triangle from thetriangulated polygon, color its vertices, addthe triangle back, and let the extra vertexhave the color different from its neighbors
Computational Geometry Lecture 4: Triangulating a polygon
![Page 9: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/9.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
A 3-coloring always exists
Computational Geometry Lecture 4: Triangulating a polygon
![Page 10: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/10.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
bn/3c cameras are enough
For a 3-colored, triangulated simplepolygon, one of the color classes is used byat most bn/3c colors. Place the cameras atthese vertices
This argument is calledthe pigeon-hole principle
Computational Geometry Lecture 4: Triangulating a polygon
![Page 11: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/11.jpg)
MotivationTriangulating a polygon
Visibility in polygonsTriangulationProof of the Art gallery theorem
bn/3c cameras are enough
Question: Why does the proof fail when the polygon hasholes?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 12: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/12.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Two-ears for triangulation
Using the two-ears theorem:(an ear consists of three consecutivevertices u, v, w where uw is a diagonal)
Find an ear, cut it off with a diagonal,triangulate the rest iteratively
Question: Why does every simple polygonhave an ear?
Question: How efficient is this algorithm?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 13: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/13.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Overview
A simple polygon is y-monotone iff anyhorizontal line intersects it in a connectedset (or not at all)
Use plane sweep to partition the polygoninto y monotone polygons
Then triangulate each y-monotone polygon
Computational Geometry Lecture 4: Triangulating a polygon
![Page 14: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/14.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Monotone polygons
A y-monotone polygon has a top vertex, abottom vertex, and two y-monotone chainsbetween top and bottom as its boundary
Any simple polygon with one top vertexand one bottom vertex is y-monotone
Computational Geometry Lecture 4: Triangulating a polygon
![Page 15: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/15.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Vertex types
What types of vertices does ageneral simple polygon have?
start
stop
split
merge
regular
. . . imagining a sweep line going topto bottom
start
merge regular
split
end
Computational Geometry Lecture 4: Triangulating a polygon
![Page 16: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/16.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Find diagonals from each mergevertex down, and from each splitvertex up
A simple polygon with no split ormerge vertices can have at most onestart and one stop vertex, so it isy-monotone
Computational Geometry Lecture 4: Triangulating a polygon
![Page 17: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/17.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
explored
unexplored
explored
unexplored
Handling split and merge vertices in the sweep?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 18: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/18.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Where can a diagonal from asplit vertex go?
Perhaps the upper endpoint ofthe edge immediately left ofthe merge vertex?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 19: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/19.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Where can a diagonal from asplit vertex go?
Perhaps the upper endpoint ofthe edge immediately left ofthe merge vertex?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 20: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/20.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Where can a diagonal from asplit vertex go?
Perhaps the upper endpoint ofthe edge immediately left ofthe merge vertex?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 21: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/21.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Where can a diagonal from asplit vertex go?
Perhaps the last vertex passedin the same “component”?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 22: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/22.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Where can a diagonal from asplit vertex go?
Perhaps the last vertex passedin the same “component”?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 23: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/23.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Sweep ideas
Where can a diagonal from asplit vertex go?
Perhaps the last vertex passedin the same “component”?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 24: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/24.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Status of sweep
The status is the set of edgesintersecting the sweep line thathave the polygon to theirright, sorted from left to right,and each with their helper: thelast vertex passed in thatcomponent
Computational Geometry Lecture 4: Triangulating a polygon
![Page 25: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/25.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Helpers of edges
The helper for an edge e thathas the polygon right of it,and a position of the sweepline, is the lowest vertex vabove the sweep line such thatthe horizontal line segmentconnecting e and v is insidethe polygon
Computational Geometry Lecture 4: Triangulating a polygon
![Page 26: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/26.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Status structure, event list
The status structure stores all edges that have the polygon tothe right, with their helper, sorted from left to right in theleaves of a balanced binary search tree T
The events happen only at the vertices: sort them byy-coordinate and put them in a list (or array, or tree)
Computational Geometry Lecture 4: Triangulating a polygon
![Page 27: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/27.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Main algorithm
Sort all vertices by y-coordinate and put them in a list.Initialize an empty status structure T
while the event list is not emptydo remove the first event and handle it
Computational Geometry Lecture 4: Triangulating a polygon
![Page 28: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/28.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Event handling
Start vertex v:
Insert the counterclockwiseincident edge in T with v as thehelper
v
Computational Geometry Lecture 4: Triangulating a polygon
![Page 29: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/29.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Event handling
End vertex v:
Delete the clockwise incidentedge and its helper from T
v
Computational Geometry Lecture 4: Triangulating a polygon
![Page 30: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/30.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Event handling
Regular vertex v:
If the polygon is right of the twoincident edges, then replace theupper edge by the lower edge inT , and make v the helper
If the polygon is left of the twoincident edges, then find theedge e directly left of v, andreplace its helper by v
v
v
Computational Geometry Lecture 4: Triangulating a polygon
![Page 31: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/31.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Event handling
Merge vertex v:
Remove the edge clockwisefrom v from T
Find the edge e directly left ofv, and replace its helper by v
e
v
Computational Geometry Lecture 4: Triangulating a polygon
![Page 32: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/32.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Event handling
Split vertex v:
Find the edge e directly left ofv, and choose as a diagonal theedge between its helper and v
Replace the helper of e by v
Insert the edge counterclockwisefrom v in T , with v as its helper
e
v
helper of e
Computational Geometry Lecture 4: Triangulating a polygon
![Page 33: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/33.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Efficiency
Sorting all events by y-coordinate takes O(n log n) time
Every event takes O(log n) time, because it only involvesquerying, inserting and deleting in T
Computational Geometry Lecture 4: Triangulating a polygon
![Page 34: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/34.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Degenerate cases
Question: Which degenerate cases arise in this algorithm?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 35: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/35.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Representation
A simple polygon with somediagonals is a subdivision ⇒use a DCEL
Question: How manydiagonals may be chosen tothe same vertex?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 36: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/36.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
More sweeping
With an upward sweep in eachsubpolygon, we can find adiagonal down from everymerge vertex (which is a splitvertex for an upward sweep!)
This makes all subpolygonsy-monotone
Computational Geometry Lecture 4: Triangulating a polygon
![Page 37: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/37.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Result
Theorem: A simple polygon with n vertices can bepartitioned into y-monotone pieces in O(n log n) time
Computational Geometry Lecture 4: Triangulating a polygon
![Page 38: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/38.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 39: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/39.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 40: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/40.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 41: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/41.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 42: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/42.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 43: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/43.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 44: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/44.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 45: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/45.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 46: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/46.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 47: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/47.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 48: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/48.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 49: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/49.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 50: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/50.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 51: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/51.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 52: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/52.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 53: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/53.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 54: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/54.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 55: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/55.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Triangulating a monotone polygon
How to triangulate ay-monotone polygon?
Computational Geometry Lecture 4: Triangulating a polygon
![Page 56: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/56.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
The algorithm
Sort the vertices top-to-bottom by a merge of the twochains
Initialize a stack. Push the first two vertices
Take the next vertex v, and triangulate as much aspossible, top-down, while popping the stack
Push v onto the stack
Computational Geometry Lecture 4: Triangulating a polygon
![Page 57: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/57.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Result
Theorem: A simple polygon with n vertices can bepartitioned into y-monotone pieces in O(n log n) time
Theorem: A monotone polygon with n vertices can betriangulated O(n) time
Can we immediately conclude:
A simple polygon with n vertices can be triangulatedO(n log n) time ???
Computational Geometry Lecture 4: Triangulating a polygon
![Page 58: Lecture 4: Triangulating a polygon - University of Florida](https://reader036.vdocuments.site/reader036/viewer/2022071601/613d35ca736caf36b75a9fa1/html5/thumbnails/58.jpg)
MotivationTriangulating a polygon
Towards an efficient algorithmPartitioning into monotone piecesTriangulating a monotone polygonTriangulating a simple polygon
Result
We need to argue that all monotone polygons together thatwe will triangulate have O(n) vertices
Initially we had n edges. We add at most n− 3 diagonals inthe sweeps, which bound polygons on both sides. So allmonotone polygons together have at most 3n− 6 edges, andtherefore at most 3n− 6 vertices
Hence we can conclude that triangulating all monotonepolygons together takes only O(n) time
Theorem: A simple polygon with n vertices can betriangulated O(n log n) time
Computational Geometry Lecture 4: Triangulating a polygon