CSN-523: Computational Geometry: Lecture 19: Partitioning A Polygon Into Monotone Polygons (Polygon Partitioning)
CSN-523: Computational Geometry: Lecture 19: Partitioning A Polygon Into Monotone Polygons (Polygon Partitioning)
CSN-523: Computational Geometry: Lecture 19: Partitioning A Polygon Into Monotone Polygons (Polygon Partitioning)
2
Monotone Partition:
3
Monotone Partition:
4
Monotone Partition:
5
Monotone Partition:
6
Turn Vertex:
7
Types of Turn Vertices:
Start Vertex - its two neighbors lie below it and the interior angle < 180
End Vertex - its two neighbors lie above it and the interior angle < 180
Split Vertex - its two neighbors lie below it and the interior angle > 180
Merge Vertex - its two neighbors lie above it and the interior angle > 180
8
Vertex Ontology:
LEMMA:A polygon is y-
monotone if it has no split
vertices or merge vertices.
9
Vertex Types in a Simple Polygon:
10
Plane Sweep Approach:
11
Monotone Partitioning:
12
Adding diagonals:
13
Monotone Partition:
14
Monotone Partition:
15
Monotone Partition:
16
Monotone Partition:
17
Monotone Partition:
18
Monotone Partition:
19
Monotone Partition:
20
Monotone Partition: Helpers
21
Removal of Split Vertices:
22
Removal of Merge Vertices:
23
Removing Split/Merge Vertices:
24
Data Structures used:
A doubly connected edge list DCEL is used to store the monotone polygons. A DCEL has
the following properties:
1. Any vertex has access to one edge that it is on.
2. Any face has access to one edge that surrounds it.
3. Any edge has access to 2 vertices and the face to its right and the face to its left.
A priority queue Q on the vertices of P, using their y-coordinates as priority. If two points
have the same y-coordinates, the one with smaller x has higher priority
Status structure T, is a Balanced Binary Search Tree that stores the edges. It represents the
current portion of the polygon the sweep line is currently crossing is needed. T is a BBST,
sorted based on relative x-position of edges. For our purposes and examples, lower x-
coordinate edges will be to the left of edges with higher x-coordinates.
Three kinds of updates to T are possible.
1. Put new edge into T. (start vertex)
2. Replace an edge within T (adding old edge into DCEL). (merge vertex)
3. Remove edge from T (adding old edges into DCEL) Note: these edges will be
adjacent in T. (end vertex)
25
MakeMonotone(P):
26
HandleStartVertex(Vi):
(Insert this vertexs edge into the sweep line status structure T; set the
helper of the left edge to v)
27
HandleEndVertex(Vi):
28
HandleSplitVertex(Vi):
29
HandleMergeVertex(Vi):
30
HandleRegularVertex(Vi):
31
Monotone Partition:
32
Monotone Partition:
33
Monotone Partition:
34
Monotone Partition:
35
Monotone Partition:
36
Monotone Partition:
37
Monotone Partition:
38
Monotone Partition:
39
Monotone Partition:
40
Monotone Partition:
41
Monotone Partition:
42
Monotone Partition:
43
Monotone Partition:
44
Monotone Partition:
45
Monotone Partition:
46
Monotone Partition:
47
Monotone Partition:
48
Monotone Partition:
49
Monotone Partition:
50
Monotone Partition:
51
Monotone Partition:
52
Monotone Partition:
53
Monotone Partition:
54
Monotone Partition:
55
Monotone Partition:
56