Title: Triangulation Supplemental
1Triangulation Supplemental
- From ORourke (Chs. 12)
- Fall 2005
2Contents
- Ear clipping algorithm
- Triangulating monotonic polygons
- Monotonic decomposition via trapezoidalization
3Ear Clipping
- Go around the polygon to check whether a diagonal
can be drawn from (i-1) to (i1) - Diagonal check
- No edge crossing AND inside P
What is the time complexity in the worst case?
4(No Transcript)
5Think
- Can every simple polygon be triangulated?
- Does every simple polygon have at two ears (so
that ear clipping algorithm can work)?
6Validity of Diagonal
- No edge crossing
- Each potential diagonal (i-1, i1) need to check
with ? edges
- In-Cone check
- local geometry
7Triangulating Monotonic Polygons
Why?
- Linear time algorithm O(n)
- Fact on monotonic polygons
- Def a vertex is called reflex if its internal
angle is strictly greater than p - Def cusp
- A reflex vertex whose adjacent vertices v- and v
are either both above or below v. - Lemma
- If a polygon P has no cusps, then it is monotone.
8Algorithm Ideas
- Cut off triangles from the top in a greedy
fashion - At each step, the first available triangle
removed - For each vertex v, connect v to all the vertices
above it and visible via a diagonal, and remove
the top portion of the polygon thereby
triangulated - Continue with the next vertex below v
9(No Transcript)
10Case 1
Case 2a, 2b
11Triangulate Monotone Polygon
Sort by y-coordinate reflex chain 1,2 v 3
12v 3 chain 1,2 same side, non-convex
Case 2b chain 1,2,3 v 4
13v 4 chain 1,2,3 same side, non-convex
Case 2b chain 1,2,3,4 v 5
14v 5 chain 1,2,3,4 opposite side
Case 1 diagonal (5,2) reflex chain 1,2,3,4
15v 5 chain 2,3,4 opposite side
Case 1 diagonal (5,3) reflex chain 2,3,4
16v 5 chain 3,4 opposite side
Case 1 diagonal (5,4) reflex chain 3,4
reflex chain 4,5 v 6
17v 6 chain 4,5 same side, non-convex
Case 2b reflex chain 4,5,6 v 7
18v 7 chain 4,5,6 same side, convex
Case 2a diagonal (7,5) reflex chain 4,5,6
19v 7 chain 4,5 same side, convex
Case 2a diagonal (7,4) reflex chain 4,5
reflex chain 4,7 v 8
20v 8 chain 4,7 lowest vertex stop
210,1,2
0,1,2,3
0,1,2,3,4
0,1,2,3,4
4,5
4,6
6,7
7,8
7,9
22Trapezoidalization
- Accomplish monotonic subdivision via horizontal
trapezoidalization - Supporting vertices the vertices through which
the horizontal lines are drawn - Assume P be a polygon with no two vertices on a
horizontal line - Each trapezoid has exactly two supporting
vertices one on top, one on bottom - Remove cusps by connecting the supporting vertex
to the opposite vertex
Assume no two points have same y coord.
23The support line stops at the boundary
24Trapezoidalization via Plane Sweep
- Time complexity O(n log n)
- Maintain a balanced tree of edges
25Sweep Line Events
(, a, c, b, )
(, a, d, b, )
(, a, c, d, b, )
(, a, b, )
(, a, b, )
(, a, c, d, b, )
26Summary
27Review Questions
- Analyze the worst case complexity of ear clipping
algorithm - Analyze the time complexity of the algorithm for
triangulating monotone polygon - Triangulate (and keep track of the reflex chain)
of the polygon on the next page - Decompose the polygon on page 24 into monotonic
pieces using trapezoidalization
28(No Transcript)
29Monotone-ization
- If the polygon has no cusp, it is monotone and
can be triangulated immediately. - seek an orientation where the polygon is
monotone - Decompose into monotone pieces via horizontal
trapezoidalization
30Three Types of Event Points
Regular
(, a, c, b, )
replace
(, a, d, b, )
Upward cusp
remove
(, a, c, d, b, )
(, a, b, )
Downward cusp
insert
(, a, b, )
(, a, c, d, b, )
31Making Trapezoids
- Regular point Extend toward material side until
a boundary is reached - Cusps extend both sides until boundaries are
reached
32aj
j
ajih
h
ajicdhu.cusp
a
i
ajicdg
acdgd.cusp
acdefgu.cusp
d
g
bcdefg
f
e
bcde
c
bc
b
Upward cusp connect to support vertex
above Downward cusp connect to support vertex
below implementation