Polygon Triangulation Outline Lecture Notes for Introduction to Computational Geometry (Com S 418518) Yan-Bin Jia, Iowa State University Textbook: Computational Geometry: Algorithms and Applications (3rd ed.) by M. de Berg et al.,
Related Topics
Share
Embed code
Download this presentation From Below
"Polygon Triangulation Outline Lecture Notes for" is the property of its rightful owner. Permission is granted to
download and print the materials on this website for personal, non-commercial use only, and to display it
on your personal computer provided you do not modify the materials and that you retain all copyright
notices contained in the materials. By downloading content from our website, you accept the terms of this
agreement.
Presentation Transcript
01
Polygon Triangulation Outline Lecture Notes for Introduction to Computational Geometry (Com S 418/518)
Yan-Bin Jia, Iowa State University Textbook: Computational Geometry: Algorithms and Applications (3rd ed.) by M. de Berg et al., Springer-Verlag, 2008.<br>
02
Brute-Force Triangulation 1. Find a diagonal. 2. Triangulate the two resulting subpolygons recursively. How to find a diagonal? leftmost
vertex case 1 case 2<br>
03
Triangulating a Convex Polygon Idea: Decompose a simple polygon into convex pieces. Triangulate the pieces. monotone as difficult
as triangulation<br>
04
walk always
downward or
horizontal lowest
vertex highest
vertex Stragegy: Partition the polygon into monotone
pieces and then triangulate.<br>
05
Turn Vertex Turn vertex is where the walk
from highest vertex to the lowest
vertex switches direction. Both adjacent edges are below. The polygon interior lies above. Choose a diagonal that goes up.<br>
06
Five Types of Vertices 4 types of turn vertices start vertices end vertices split vertices merge vertices<br>
07
Local Non-Monotonicity split
vertex merge vertex<br>
08
II. Partitioning into Monotone Pieces Add a downward diagonal at every merge vertex. Add an upward diagonal at every split vertex. Use a downward plane sweep. No new event point will be created except the vertices. The event queue is implemented as priority queue (e.g., heap).<br>
09
Removal of a Split Vertex ● A regular, merge, start, or split vertex but not an end vertex.<br>
10
Helper Vertex<br>
11
Removal of a Merge Vertex<br>
12
Removal (Cont’d) Check if the old helper is a merge
vertex and add the diagonal if so.<br>
13
Sweep-Line Status Implemented as a binary search tree.<br>
14
DCEL Representation<br>
15
The Algorithm<br>
16
Handling Start & End Vertices<br>
17
Handling Split Vertex<br>
18
Handling Merge Vertex (1)<br>
19
Handling Merge Vertex (2)<br>
20
Handling Regular Vertices (1)<br>
21
Handling Regular Vertices (2)<br>
22
Correctness Theorem The algorithm adds a set of non-intersecting
diagonals that partitions the polygon into
monotone pieces. Proof The pieces that result from the partitioning contain no split
or merge vertices. Hence they are monotone by an earlier
lemma. We need only prove that the added segments are diagonals
that intersect neither the polygon edges nor each other. Establish the above claim for the handling of each of the
five type of vertices during the sweep. (Read the textbook
on how to do this for the case of a split vertex.)<br>
23
Running Time on Partitioning<br>
24
It is for clarity of presentation and can be easily removed. Idea: Add as many diagonals from the current
vertex handled to those on the stack as
possible. lowest vertex on top. funnel Invariants of iteration: reflex
vertices convex
vertex current
vertex<br>
25
Case 1: Next Vertex on Opposite Chain current
vertex<br>
26
Case 2: Next Vertex on the Same Chain current
vertex The vertices that can connect to the current
vertex are all on the stack.<br>
27
The Triangulation Algorithm<br>
28
An Example Start:<br>
29
Example (cont’d)<br>
30
Example (Cont’d)<br>
31
Removal of Strict y-monotonicity<br>
32
Time Complexity of Triangulation 1. Partition a simple polygon into monotone pieces. 2. Triangulate each monotone piece.<br>
33
Triangulation of a Planar Subdivision The algorithm for splitting a polygon into monotone pieces
does not use the fact that the polygon was simple.<br>