1 Triangulation Supplemental From O’Rourke (Chs. 1&2) Fall 2005.

Slides:



Advertisements
Similar presentations
Polygon Triangulation
Advertisements

Computational Geometry
Planar Orientations Chapter 4 ( ) in the book Written By: Tomer Heber.
Convex drawing chapter 5 Ingeborg Groeneweg. Summery What is convex drawing What is convex drawing Some definitions Some definitions Testing convexity.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Brute-Force Triangulation
2/3/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries II Carola Wenk.
Convex Hull obstacle start end Convex Hull Convex Hull
UNC Chapel Hill M. C. Lin Polygon Triangulation Chapter 3 of the Textbook Driving Applications –Guarding an Art Gallery –3D Morphing.
Lecture 3: Polygon Triangulation Computational Geometry Prof. Dr. Th. Ottmann Triangulation (Naive)
POLYGON TRIANGULATION POLYGON TRIANGULATION THE ART GALERY PROBLEM SİNEM GETİR COMPUTER GRAPHIC SEMINAR FEBRUARY 4, 2009.
9/12/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries II Carola Wenk.
I. The Problem of Molding Does a given object have a mold from which it can be removed? object not removable mold 1 object removable Assumptions The object.
Ruslana Mys Delaunay Triangulation Delaunay Triangulation (DT)  Introduction  Delaunay-Voronoi based method  Algorithms to compute the convex hull 
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Computational Geometry
THE WORLD OF POLYGONS LESSON 4.
Feb Polygon Triangulation Shmuel Wimer Bar Ilan Univ., School of Engineering.
Intersections. Intersection Problem 3 Intersection Detection: Given two geometric objects, do they intersect? Intersection detection (test) is frequently.
Computational Geometry Piyush Kumar (Lecture 3: Convexity and Convex hulls) Welcome to CIS5930.
Voronoi Diagram Presenter: GI1 11號 蔡逸凡
Query Processing in Databases Dr. M. Gavrilova.  Introduction  I/O algorithms for large databases  Complex geometric operations in graphical querying.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 Lecture 2 Polygon Partitioning Thursday,
K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush.
Lecture 3: Polygon Triangulation Computational Geometry Prof. Dr. Th. Ottmann Polygon Triangulation Motivation: Guarding art galleries Art gallery theorem.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Lecture 2 Chapter 2: Polygon Partitioning.
Polygon Triangulation Computational Geometry, WS 2007/08 Lecture 9 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Voronoi Diagrams.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Lecture 2 Chapter 2: Polygon Partitioning.
Polygon Triangulation Computational Geometry, WS 2006/07 Lecture 8, Part 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 2 Chapter 2: Polygon Partitioning.
The Art Gallery Problem
Brute-Force Triangulation
Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930.
The Art Gallery Problem
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Basics of Rendering Pipeline Based Rendering –Objects in the scene are rendered in a sequence of steps that form the Rendering Pipeline. Ray-Tracing –A.
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
AMS 345/CSE 355 Computational Geometry
Triangulating a monotone polygon
Today we will be learning about
*Quadrilateral scrapbook geometery* !Jay-hoosey delpozo! 9 th
Computational Geometry Course Summary (First Half) Spring 2008 Pay special attention to: algorithm details (able to explain correctness and carry out a.
Section 3.5 Polygons A polygon is:  A closed plane figure made up of several line segments they are joined together.  The sides to not cross each other.
- is a flat surface that extends in all directions. Objective - To identify angles as vertical, adjacent, complementary and supplementary. Plane.
1. Reflex Vertex Test Assuming the vertices (in XY plane) are CCW ordered; the normal vector is (0,0,1) Devise a test that can distinguish a regular vertex.
1/29/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries Carola Wenk.
UNC Chapel Hill M. C. Lin Computing Voronoi Diagram For each site p i, compute the common inter- section of the half-planes h(p i, p j ) for i  j, using.
Contest Algorithms January 2016 Triangulation & the Art Gallery Problem Contest Algorithms1.
11 Chapter Introductory Geometry
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Polygons A polygon is a plane shape with straight sides.
3-5 Angles of a Polygon. A) Terms Polygons – each segment intersects exactly two other segments, one at each endpoint. Are the following figures a polygon?
Computer Graphics Lecture 08 Taqdees A. Siddiqi Computer Graphics Filled Area Primitives I Lecture 08 Taqdees A. Siddiqi
Polygon Triangulation
CMPS 3130/6130 Computational Geometry Spring 2017
3. Polygon Triangulation
Introduction to Spatial Computing CSE 555
Fill Area Algorithms Jan
Query Processing in Databases Dr. M. Gavrilova
An angle inside a polygon
Algorithm design techniques Dr. M. Gavrilova
All sides have the same length and angles have the same measure.
Angle Relationships.
The Art Gallery Problem
The Art Gallery Problem
Polygon Triangulation
AMS 345/CSE 355 Computational Geometry
I. The Problem of Molding
Triangulation of a polygon
Presentation transcript:

1 Triangulation Supplemental From O’Rourke (Chs. 1&2) Fall 2005

2 Contents Ear clipping algorithm Triangulating monotonic polygons Monotonic decomposition via trapezoidalization

3 Ear Clipping Go around the polygon to check whether a diagonal can be drawn from (i-1) to (i+1) Diagonal check: –No edge crossing AND inside P What is the time complexity in the worst case?

5 Think… Can every simple polygon be triangulated? Does every simple polygon have at two ears (so that ear clipping algorithm can work)?

6 Validity of Diagonal No edge crossing –Each potential diagonal (i-1, i+1) need to check with ? edges “In-Cone” check: –local geometry

7 Triangulating Monotonic Polygons Linear time algorithm: O(n) Fact on monotonic polygons –Def: a vertex is called reflex if its internal angle is strictly greater than  –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. Why?

8 Algorithm 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

10 Case 1: Case 2a, 2b:

11 Sort by y-coordinate reflex chain: {1,2} v = Triangulate Monotone Polygon

12 Case 2b: chain {1,2,3} v = 4 v = 3 chain: {1,2} [same side, non-convex]

13 Case 2b: chain {1,2,3,4} v = 5 v = 4 chain: {1,2,3} [same side, non-convex]

Case 1: diagonal (5,2) reflex chain {1,2,3,4} v = 5 chain: {1,2,3,4} [opposite side]

Case 1: diagonal (5,3) reflex chain {2,3,4} v = 5 chain: {2,3,4} [opposite side]

Case 1: diagonal (5,4) reflex chain {3,4} reflex chain {4,5} v = 6 v = 5 chain: {3,4} [opposite side]

Case 2b: reflex chain {4,5,6} v = 7 v = 6 chain: {4,5} [same side, non-convex]

Case 2a: diagonal (7,5) reflex chain {4,5,6} v = 7 chain: {4,5,6} [same side, convex]

Case 2a: diagonal (7,4) reflex chain {4,5} reflex chain {4,7} v = 8 v = 7 chain: {4,5} [same side, convex]

v = 8 chain: {4,7} [lowest vertex; stop]

{0,1,2} {0,1,2,3} {0,1,2,3,4} {4,5} {4,6} {6,7} {7,8} {7,9} {4,5} {6,7} {7,8} {9,10} {7,9} {4,6}

22 Trapezoidalization 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.

23 The support line stops at the boundary

24 Trapezoidalization via Plane Sweep Time complexity: O(n log n) Maintain a balanced tree of edges

25 Sweep Line Events (…, a, c, b, …) (…, a, d, b, …) (…, a, c, d, b, …) (…, a, b, …) (…, a, c, d, b, …)

26 Summary

27 Review Questions 1.Analyze the worst case complexity of ear clipping algorithm 2.Analyze the time complexity of the algorithm for triangulating monotone polygon 3.Triangulate (and keep track of the reflex chain) of the polygon on the next page 4.Decompose the polygon on page 24 into monotonic pieces using trapezoidalization

28

29 Monotone-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

30 Three Types of Event Points (…, a, c, b, …) (…, a, d, b, …) (…, a, c, d, b, …) (…, a, b, …) (…, a, c, d, b, …) Regular Upward cusp Downward cusp replace remove insert

31 Making Trapezoids Regular point: Extend toward material side until a boundary is reached Cusps: extend both sides until boundaries are reached

32 a b c d e f g h i j {bc} {aj} {ajih} {ajicdh}u.cusp {ajicdg} {acdg}d.cusp {acdefg}u.cusp {bcdefg} {bcde} {} Upward cusp: connect to support vertex above Downward cusp: connect to support vertex below [implementation]