Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf ·...

90
Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations Computing triangulation Partitioning a Polygon into Monotone Pieces Triangulating a Monotone Polygon Polygon Triangulation 1392-1 1 / 37

Transcript of Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf ·...

Page 1: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Polygon Triangulation

1392-1

1 / 37

Page 2: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Motivation:The Art Gallery Problem

2 / 37

Page 3: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Motivation:The Art Gallery Problem

2 / 37

Page 4: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Motivation:The Art Gallery Problem

2 / 37

Page 5: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Simple polygon: Regions enclosed by a singleclosed polygonal chain that does not intersect itself.Question: How many cameras do we need to guarda simple polygon?Answer: Depends on the polygon.One solution: Decompose the polygon to parts whichare simple to guard.

Simple Polygon Non-Simple Polygons3 / 37

Page 6: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Simple polygon: Regions enclosed by a singleclosed polygonal chain that does not intersect itself.Question: How many cameras do we need to guarda simple polygon?Answer: Depends on the polygon.One solution: Decompose the polygon to parts whichare simple to guard.

Convex Star-shaped

3 / 37

Page 7: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Simple polygon: Regions enclosed by a singleclosed polygonal chain that does not intersect itself.Question: How many cameras do we need to guarda simple polygon?Answer: Depends on the polygon.One solution: Decompose the polygon to parts whichare simple to guard.

3 / 37

Page 8: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

diagonals:Triangulation: A decomposition of a polygon intotriangles by a maximal set of non-intersectingdiagonals.

diagonals

not diagonal

4 / 37

Page 9: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

diagonals:Triangulation: A decomposition of a polygon intotriangles by a maximal set of non-intersectingdiagonals.

4 / 37

Page 10: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

diagonals:Triangulation: A decomposition of a polygon intotriangles by a maximal set of non-intersectingdiagonals.

4 / 37

Page 11: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

diagonals:Triangulation: A decomposition of a polygon intotriangles by a maximal set of non-intersectingdiagonals.

4 / 37

Page 12: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Guarding after triangulation:

5 / 37

Page 13: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Guarding after triangulation:

5 / 37

Page 14: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Guarding after triangulation:

5 / 37

Page 15: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Guarding after triangulation:

5 / 37

Page 16: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating PolygonsDefinitions

Guarding after triangulation:

5 / 37

Page 17: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Questions:Does a triangulation always exist?How many triangles can there be in a triangulation?

Theorem 3.1Every simple polygon admits a triangulation, and anytriangulation of a simple polygon with n vertices consistsof exactly n− 2 triangles.Proof. By induction.

6 / 37

Page 18: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Questions:Does a triangulation always exist?How many triangles can there be in a triangulation?

Theorem 3.1Every simple polygon admits a triangulation, and anytriangulation of a simple polygon with n vertices consistsof exactly n− 2 triangles.Proof. By induction.

6 / 37

Page 19: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Questions:Does a triangulation always exist?How many triangles can there be in a triangulation?

Theorem 3.1Every simple polygon admits a triangulation, and anytriangulation of a simple polygon with n vertices consistsof exactly n− 2 triangles.Proof. By induction.

v

w

u

v

w

u

v′

6 / 37

Page 20: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Guarding a triangulated polygon

TP : A triangulation of a simple polygon P .Select S ⊆ the vertices of P , such that any triangle inTP has at least one vertex in S, and place thecameras at vertices in S.To find such a subset: find a 3-coloring of atriangulated polygon.In a 3-coloring of TP , every triangle has a blue, a red,and a black vertex. Hence, if we place cameras at allred vertices, we have guarded the whole polygon.By choosing the smallest color class to place thecameras, we can guard P using at most bn/3ccameras.

7 / 37

Page 21: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Guarding a triangulated polygon

TP : A triangulation of a simple polygon P .Select S ⊆ the vertices of P , such that any triangle inTP has at least one vertex in S, and place thecameras at vertices in S.To find such a subset: find a 3-coloring of atriangulated polygon.In a 3-coloring of TP , every triangle has a blue, a red,and a black vertex. Hence, if we place cameras at allred vertices, we have guarded the whole polygon.By choosing the smallest color class to place thecameras, we can guard P using at most bn/3ccameras.

7 / 37

Page 22: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Guarding a triangulated polygon

TP : A triangulation of a simple polygon P .Select S ⊆ the vertices of P , such that any triangle inTP has at least one vertex in S, and place thecameras at vertices in S.To find such a subset: find a 3-coloring of atriangulated polygon.In a 3-coloring of TP , every triangle has a blue, a red,and a black vertex. Hence, if we place cameras at allred vertices, we have guarded the whole polygon.By choosing the smallest color class to place thecameras, we can guard P using at most bn/3ccameras.

7 / 37

Page 23: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Guarding a triangulated polygon

TP : A triangulation of a simple polygon P .Select S ⊆ the vertices of P , such that any triangle inTP has at least one vertex in S, and place thecameras at vertices in S.To find such a subset: find a 3-coloring of atriangulated polygon.In a 3-coloring of TP , every triangle has a blue, a red,and a black vertex. Hence, if we place cameras at allred vertices, we have guarded the whole polygon.By choosing the smallest color class to place thecameras, we can guard P using at most bn/3ccameras.

7 / 37

Page 24: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Guarding a triangulated polygon

TP : A triangulation of a simple polygon P .Select S ⊆ the vertices of P , such that any triangle inTP has at least one vertex in S, and place thecameras at vertices in S.To find such a subset: find a 3-coloring of atriangulated polygon.In a 3-coloring of TP , every triangle has a blue, a red,and a black vertex. Hence, if we place cameras at allred vertices, we have guarded the whole polygon.By choosing the smallest color class to place thecameras, we can guard P using at most bn/3ccameras.

7 / 37

Page 25: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Does a 3-coloring always exist?Dual graph:

This graph G(TP ) has a node for every triangle in TP .There is an arc between two nodes ν and µ if t(ν)and t(µ) share a diagonal.G(TP ) is a tree.

?

µ

ν

8 / 37

Page 26: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Does a 3-coloring always exist?For 3-coloring:

Traverse the dual graph (DFS).Invariant: so far everything is nice.Start from any node of G(TP ); color the vertices.When we reach a node ν in G, coming from node µ.Only one vertex of t(ν) remains to be colored.

?

µ

ν

9 / 37

Page 27: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Art Gallery Theorem

Theorem 3.2 (Art Gallery Theorem)For a simple polygon with n vertices, bn/3c cameras areoccasionally necessary and always sufficient to haveevery point in the polygon visible from at least one of thecameras.

prongsbn/3c

10 / 37

Page 28: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Art Gallery Theorem

We will show:How to compute a triangulation in O(n log n) time.

Therefore:

Theorem 3.3Let P be a simple polygon with n vertices. A set of bn/3ccamera positions in P such that any point inside P isvisible from at least one of the cameras can be computedin O(n log n) time.

11 / 37

Page 29: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

How can we compute a triangulation of a given polygon?

12 / 37

Page 30: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulation algorithmsA really naive algorithm: check all

(n2

)choices for a

diagonal, each takes O(n) time. Time complexity:O(n3).A better naive algorithm: find an ear in O(n) time,then recurse. Total time: O(n2).First non-trivial algorithm: O(n log n) (1978).A long series of papers and algorithms in 80s untilChazelle produced an optimal O(n) algorithm in1991.Linear time algorithm insanely complicated; there arerandomized, expected linear time that are moreaccessible.Here we present a O(n log n) algorithm.

13 / 37

Page 31: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Algorithm Outline

Algorithm Outline1 Partition polygon into monotone polygons.2 Triangulate each monotone piece.

14 / 37

Page 32: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 33: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

y−axis`

`′

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 34: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

y−axis

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 35: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

y−axis

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 36: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

y−axis

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 37: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

y−axis

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 38: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

y−axis

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 39: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone polygon

`-monotone polygonP is called monotone w. r. t. ` if ∀`′ perpendicular to ` theintersection of P with ` is connected (a line segment, apoint, or empty).

Definition:A point p is below another point q if py < qy or py = qyand px > qx.p is above q if py > qy or py = qy and px < qx.

15 / 37

Page 40: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Partition P into monotone pieces

=merge vertex

=regular vertex

=end vertex

=start vertex

=split vertex

v1v2

v3v4

v5

v6

v7

v8

v9

v10

v11

v12

v13

v14

v15

e1

e2

e3e4e5

e6

e7e8

e9

e10e11

e13

e14e15

e12

16 / 37

Page 41: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Partition P into monotone pieces

Lemma 3.4If P has no split or merge vertices then it is y-monotone.

Proof. Assume P is not y-monotone.

P has been partitioned into y-monotone pieces once weget rid of its split and merge vertices.

17 / 37

Page 42: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Partition P into monotone pieces

Lemma 3.4If P has no split or merge vertices then it is y-monotone.

Proof. Assume P is not y-monotone.

p q r

P

merge vertex

p = r q r

split vertex(a) (b)

P

P

P has been partitioned into y-monotone pieces once weget rid of its split and merge vertices.

17 / 37

Page 43: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Partition P into monotone pieces

Lemma 3.4If P has no split or merge vertices then it is y-monotone.

Proof. Assume P is not y-monotone.

p q r

P

merge vertex

p = r q r

split vertex(a) (b)

P

P

P has been partitioned into y-monotone pieces once weget rid of its split and merge vertices.

17 / 37

Page 44: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing split vertices:

A sweep line algorithm.Events: all the pointsGoal: To add diagonalsfrom each split vertex toa vertex lying above it.helper(ej): Lowestvertex above the sweepline s. t. the horizontalsegment connecting thevertex to ej lies inside P .Connect split vertices tothe helper of the edge totheir left.

18 / 37

Page 45: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing split vertices:

A sweep line algorithm.Events: all the pointsGoal: To add diagonalsfrom each split vertex toa vertex lying above it.helper(ej): Lowestvertex above the sweepline s. t. the horizontalsegment connecting thevertex to ej lies inside P .Connect split vertices tothe helper of the edge totheir left.

18 / 37

Page 46: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing split vertices:

A sweep line algorithm.Events: all the pointsGoal: To add diagonalsfrom each split vertex toa vertex lying above it.helper(ej): Lowestvertex above the sweepline s. t. the horizontalsegment connecting thevertex to ej lies inside P .Connect split vertices tothe helper of the edge totheir left.

ej ekvi

ei−1 ei

helper(ej)

18 / 37

Page 47: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing split vertices:

A sweep line algorithm.Events: all the pointsGoal: To add diagonalsfrom each split vertex toa vertex lying above it.helper(ej): Lowestvertex above the sweepline s. t. the horizontalsegment connecting thevertex to ej lies inside P .Connect split vertices tothe helper of the edge totheir left.

ej ekvi

ei−1 ei

helper(ej)

18 / 37

Page 48: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing merge vertices:

Connect each merge vertex to the highest vertexbelow the sweep line in between ej and ek.But we do not know the point.When we reach a vertex vm that replaces the helperof ej , then this is the vertex we are looking for.

19 / 37

Page 49: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing merge vertices:

Connect each merge vertex to the highest vertexbelow the sweep line in between ej and ek.But we do not know the point.When we reach a vertex vm that replaces the helperof ej , then this is the vertex we are looking for.

19 / 37

Page 50: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Removing split/merge vertices:Removing merge vertices:

Connect each merge vertex to the highest vertexbelow the sweep line in between ej and ek.But we do not know the point.When we reach a vertex vm that replaces the helperof ej , then this is the vertex we are looking for.

ejvi ek

vm

diagonal will be addedwhen the sweep linereaches vm.

19 / 37

Page 51: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Data Structure:

For this approach, we need to find the edge to the left ofeach vertex. To do that:

1 We store the edges of P intersecting the sweep linein the leaves of a dynamic binary search tree T .

2 Because we are only interested in edges to the left ofsplit and merge vertices we only need to store edgesin T that have the interior of P to their right.

3 With each edge in T we store its helper.4 We store P in DCEL form and make changes such

that it remains valid.

20 / 37

Page 52: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Data Structure:

For this approach, we need to find the edge to the left ofeach vertex. To do that:

1 We store the edges of P intersecting the sweep linein the leaves of a dynamic binary search tree T .

2 Because we are only interested in edges to the left ofsplit and merge vertices we only need to store edgesin T that have the interior of P to their right.

3 With each edge in T we store its helper.4 We store P in DCEL form and make changes such

that it remains valid.

20 / 37

Page 53: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Data Structure:

For this approach, we need to find the edge to the left ofeach vertex. To do that:

1 We store the edges of P intersecting the sweep linein the leaves of a dynamic binary search tree T .

2 Because we are only interested in edges to the left ofsplit and merge vertices we only need to store edgesin T that have the interior of P to their right.

3 With each edge in T we store its helper.4 We store P in DCEL form and make changes such

that it remains valid.

20 / 37

Page 54: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Data Structure:

For this approach, we need to find the edge to the left ofeach vertex. To do that:

1 We store the edges of P intersecting the sweep linein the leaves of a dynamic binary search tree T .

2 Because we are only interested in edges to the left ofsplit and merge vertices we only need to store edgesin T that have the interior of P to their right.

3 With each edge in T we store its helper.4 We store P in DCEL form and make changes such

that it remains valid.

20 / 37

Page 55: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Make Monotone Algorithm:Algorithm MAKEMONOTONE(P )Input: A simple polygon P stored in a DCEL D.Output: A partitioning of P into monotone subpolygons,

stored in D.1. Construct a priority queue Q on the vertices of P ,

using their y-coordinates as priority. If two pointshave the same y-coordinate, the one with smallerx-coordinate has higher priority.

2. Initialize an empty binary search tree T .3. while Q is not empty4. Remove the vertex vi with the highest priority

from Q.5. Call the appropriate procedure to handle the

vertex, depending on its type.

21 / 37

Page 56: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Make Monotone Algorithm:Algorithm HANDLESTARTVERTEX(vi)1. Insert ei in T and set helper(ei) to vi.

v1v2

v3v4

v5

v6

v7

v8

v9

v10

v11

v12

v13

v14v15

e1

e2

e3e4e5

e6

e7

e8

e9

e10e11

e13

e14

e15

e12

22 / 37

Page 57: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Make Monotone Algorithm:Algorithm HANDLEENDVERTEX(vi)1. if helper(ei−1) is a merge vertex2. then Insert the diagonal connecting vi to

helper(ei−1) in D.3. Delete ei−1 from T .

v1v2

v3v4

v5

v6

v7

v8

v9

v10

v11

v12

v13

v14v15

e1

e2

e3e4e5

e6

e7

e8

e9

e10e11

e13

e14

e15

e12

23 / 37

Page 58: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Make Monotone Algorithm:

Algorithm HANDLESPLITVERTEX(vi)1. Search in T to find the edge ej directly left of vi.2. Insert the diagonal connecting vi to helper(ej) in D.3. helper(ej)← vi.4. Insert ei in T and set helper(ei) to vi.

v1v2

v3v4

v5

v6

v7

v8

v9

v10

v11

v12

v13

v14v15

e1

e2

e3e4e5

e6

e7

e8

e9

e10e11

e13

e14

e15

e12

24 / 37

Page 59: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Make Monotone Algorithm:Algorithm HANDLEMERGEVERTEX(vi)1. if helper(ei−1) is a merge vertex2. then Insert the diag. vi to helper(ei−1) in D.3. Delete ei−1 from T .4. Search in T to find ej directly left of vi.5. if helper(ej) is a merge vertex6. then Insert the diag. vi to helper(ej) in D.7. helper(ej)← vi.

v1v2

v3v4

v5

v6

v7

v8

v9

v10

v11

v12

v13

v14v15

e1

e2

e3e4e5

e6

e7

e8

e9

e10e11

e13

e14

e15

e12

25 / 37

Page 60: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Make Monotone Algorithm:Algorithm HANDLEREGULARVERTEX(vi)1. if the interior of P lies to the right of vi2. then if helper(ei−1) is a merge vertex3. then Insert the diag. vi to helper(ei−1) in D.4. Delete ei−1 from T .5. Insert ei in T and set helper(ei) to vi.6. else Search in T to find ej directly left of vi.7. if helper(ej) is a merge vertex8. then Insert the diag. vi to helper(ej) in D.9. helper(ej)← vi

v1v2

v3v4

v5

v6

v7

v8

v9

v10

v11

v12

v13

v14v15

e1

e2

e3e4e5

e6

e7

e8

e9

e10e11

e13

e14

e15

e12

26 / 37

Page 61: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Lemma 3.5Algorithm MAKEMONOTONE adds a set ofnon-intersecting diagonals that partitions P intomonotone subpolygons.

Proof. (For split vertices) (other cases are similar)No intersection between vivm and edges of P .No intersection between vivm and previous diag.R is empty, endpoints of previously added edges:above vi.

ej

vm

vi

R

ek27 / 37

Page 62: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Lemma 3.5Algorithm MAKEMONOTONE adds a set ofnon-intersecting diagonals that partitions P intomonotone subpolygons.

Proof. (For split vertices) (other cases are similar)No intersection between vivm and edges of P .No intersection between vivm and previous diag.R is empty, endpoints of previously added edges:above vi.

ej

vm

vi

R

ek27 / 37

Page 63: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Lemma 3.5Algorithm MAKEMONOTONE adds a set ofnon-intersecting diagonals that partitions P intomonotone subpolygons.

Proof. (For split vertices) (other cases are similar)No intersection between vivm and edges of P .No intersection between vivm and previous diag.R is empty, endpoints of previously added edges:above vi.

ej

vm

vi

R

ek27 / 37

Page 64: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Lemma 3.5Algorithm MAKEMONOTONE adds a set ofnon-intersecting diagonals that partitions P intomonotone subpolygons.

Proof. (For split vertices) (other cases are similar)No intersection between vivm and edges of P .No intersection between vivm and previous diag.R is empty, endpoints of previously added edges:above vi.

ej

vm

vi

R

ek27 / 37

Page 65: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Running time/ Space complexity

Running time:Constructing the priority queue Q: O(n) time.Initializing T : O(1) time.To handle an event, we perform:

1 one operation on Q: O(log n) time.2 at most one query on T : O(log n) time.3 one insertion, and one deletion on T : O(log n) time.4 we insert at most two diagonals into D: O(1) time.

Space Complexity:The amount of storage used by the algorithm is clearlylinear: every vertex is stored at most once in Q, andevery edge is stored at most once in T .

28 / 37

Page 66: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Running time/ Space complexity

Running time:Constructing the priority queue Q: O(n) time.Initializing T : O(1) time.To handle an event, we perform:

1 one operation on Q: O(log n) time.2 at most one query on T : O(log n) time.3 one insertion, and one deletion on T : O(log n) time.4 we insert at most two diagonals into D: O(1) time.

Space Complexity:The amount of storage used by the algorithm is clearlylinear: every vertex is stored at most once in Q, andevery edge is stored at most once in T .

28 / 37

Page 67: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Monotone Decomposition:

Theorem 3.6A simple polygon with n vertices can be partitioned intoy-monotone polygons in O(n log n) time with an algorithmthat uses O(n) storage.

29 / 37

Page 68: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone Polygon

30 / 37

Page 69: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone Polygon

Triangulation Algorithm:1 The algorithm handles the vertices in order of

decreasing y-coordinate. (Left to right for points withsame y-coordinate).

2 The algorithm requires a stack S as auxiliary datastructure. It keeps the points that handled but mightneed more diagonals.

3 When we handle a vertex we add as many diagonalsfrom this vertex to vertices on the stack as possible.

4 Algorithm invariant: the part of P that still needs tobe triangulated, and lies above the last vertex thathas been encountered so far, looks like a funnelturned upside down.

31 / 37

Page 70: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone Polygon

Triangulation Algorithm:1 The algorithm handles the vertices in order of

decreasing y-coordinate. (Left to right for points withsame y-coordinate).

2 The algorithm requires a stack S as auxiliary datastructure. It keeps the points that handled but mightneed more diagonals.

3 When we handle a vertex we add as many diagonalsfrom this vertex to vertices on the stack as possible.

4 Algorithm invariant: the part of P that still needs tobe triangulated, and lies above the last vertex thathas been encountered so far, looks like a funnelturned upside down.

31 / 37

Page 71: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone Polygon

Triangulation Algorithm:1 The algorithm handles the vertices in order of

decreasing y-coordinate. (Left to right for points withsame y-coordinate).

2 The algorithm requires a stack S as auxiliary datastructure. It keeps the points that handled but mightneed more diagonals.

3 When we handle a vertex we add as many diagonalsfrom this vertex to vertices on the stack as possible.

4 Algorithm invariant: the part of P that still needs tobe triangulated, and lies above the last vertex thathas been encountered so far, looks like a funnelturned upside down.

31 / 37

Page 72: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone Polygon

Triangulation Algorithm:1 The algorithm handles the vertices in order of

decreasing y-coordinate. (Left to right for points withsame y-coordinate).

2 The algorithm requires a stack S as auxiliary datastructure. It keeps the points that handled but mightneed more diagonals.

3 When we handle a vertex we add as many diagonalsfrom this vertex to vertices on the stack as possible.

4 Algorithm invariant: the part of P that still needs tobe triangulated, and lies above the last vertex thathas been encountered so far, looks like a funnelturned upside down.

31 / 37

Page 73: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone Polygon

trianglessplit off

not yettriangulated

32 / 37

Page 74: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 1: vj and top of stack on different chains

33 / 37

Page 75: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 1: vj and top of stack on different chains

vj

e

top of stack

33 / 37

Page 76: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 1: vj and top of stack on different chains

vj

popped

e

33 / 37

Page 77: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 1: vj and top of stack on different chains

vj

popped

e

33 / 37

Page 78: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 1: vj and top of stack on different chains

popped

e

vj

33 / 37

Page 79: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 1: vj and top of stack on different chains

vj

popped

pushed

e

pushed

33 / 37

Page 80: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

vj

34 / 37

Page 81: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

vj

popped

34 / 37

Page 82: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

vj

popped

34 / 37

Page 83: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

vj

popped

popped

34 / 37

Page 84: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

vj

popped

popped

34 / 37

Page 85: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

pushed

vj

popped

popped andpushed

34 / 37

Page 86: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonCase 2: vj and top of stack on same chain

pushed

vj

popped andpushed

34 / 37

Page 87: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Triangulating a Monotone PolygonAlgorithm TRIANGULATEMONOTONEPOLYGON(P )Input: A strictly y-monotone polygon P stored in D.Output: A triangulation of P stored in D.1. Merge the vertices on the left chain and the vertices on the right

chain of P into one sequence, sorted on decreasingy-coordinate. Let u1, . . . , un denote the sorted sequence.

2. Initialize an empty stack S, and push u1 and u2 onto it.3. for j ← 3 to n− 14. if uj and the vertex on top of S are on different chains5. then Pop all vertices from S.6. Insert into D a diagonal from uj to each popped

vertex, except the last one.7. Push uj−1 and uj onto S.8. else Pop one vertex from S.9. Pop the other vertices from S as long as the

diagonals from uj to them are inside P . Insertthese diagonals into D. Push the last vertex thathas been popped back onto S.

10. Push uj onto S.11. Add diagonals from un to all stack vertices except the first and

the last one.

35 / 37

Page 88: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Polygon TriangulationTheorem 3.8A simple polygon with n vertices can be triangulated inO(n log n) time with an algorithm that uses O(n) storage.

Theorem 3.9A planar subdivision with n vertices in total can betriangulated in O(n log n) time with an algorithm that usesO(n) storage.

36 / 37

Page 89: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

Polygon TriangulationTheorem 3.8A simple polygon with n vertices can be triangulated inO(n log n) time with an algorithm that uses O(n) storage.

Theorem 3.9A planar subdivision with n vertices in total can betriangulated in O(n log n) time with an algorithm that usesO(n) storage.

36 / 37

Page 90: Yazd Univ. Polygon Triangulationcs.yazd.ac.ir/farshi/Teaching/CG3921/Slides/Triang.pdf · 2013-10-07 · Yazd Univ. Computational Geometry The Art Gallery Problem Guarding and Triangulations

Yazd Univ.

ComputationalGeometry

The Art GalleryProblemGuarding andTriangulations

ComputingtriangulationPartitioning a Polygon intoMonotone Pieces

Triangulating a MonotonePolygon

END.

37 / 37