1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Hulls & triangulations  Convexity  Convex hull  Delaunay triangulation.

Slides:



Advertisements
Similar presentations
Computational Geometry
Advertisements

CS 450: COMPUTER GRAPHICS FILLING POLYGONS SPRING 2015 DR. MICHAEL J. REALE.
Approximations of points and polygonal chains
2/9/06CS 3343 Analysis of Algorithms1 Convex Hull  Given a set of pins on a pinboard  And a rubber band around them  How does the rubber band look when.
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
Brute-Force Triangulation
Computational Geometry II Brian Chen Rice University Computer Science.
UNC Chapel Hill M. C. Lin Polygon Triangulation Chapter 3 of the Textbook Driving Applications –Guarding an Art Gallery –3D Morphing.
1 Voronoi Diagrams. 2 Voronoi Diagram Input: A set of points locations (sites) in the plane.Input: A set of points locations (sites) in the plane. Output:
The Divide-and-Conquer Strategy
Convex Hulls in Two Dimensions Definitions Basic algorithms Gift Wrapping (algorithm of Jarvis ) Graham scan Divide and conquer Convex Hull for line intersections.
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.
Classes of Polygons Planar polygons Non-planar polygons Simple
Convex Hulls in 3-space Jason C. Yang.
8/29/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Spring 2006 Convex Hulls Carola Wenk.
Convex Hull Problem Presented By Erion Lin. Outline Convex Hull Problem Voronoi Diagram Fermat Point.
Feb Polygon Triangulation Shmuel Wimer Bar Ilan Univ., School of Engineering.
What does that mean? To get the taste we will just look only at some sample problems... [Adapted from S.Suri]
Advanced Computer Graphics Spring 2014
Discrete Geometry Tutorial 2 1
Voronoi Diagram Presenter: GI1 11號 蔡逸凡
Computational Geometry -- Voronoi Diagram
17. Computational Geometry Chapter 7 Voronoi Diagrams.
2. Voronoi Diagram 2.1 Definiton Given a finite set S of points in the plane , each point X of  defines a subset S X of S consisting of the points of.
3. Delaunay triangulation
1 Lecture 8: Voronoi Diagram Computational Geometry Prof. Dr. Th. Ottmann Voronoi Diagrams Definition Characteristics Size and Storage Construction Use.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Chapter 5: Voronoi Diagrams Wednesday,
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 9 Delaunay Triangulation.
5 - 1 § 5 The Divide-and-Conquer Strategy e.g. find the maximum of a set S of n numbers.
Image Morphing : Rendering and Image Processing Alexei Efros.
Chapter 4: Straight Line Drawing Ronald Kieft. Contents Introduction Algorithm 1: Shift Method Algorithm 2: Realizer Method Other parts of chapter 4 Questions?
Complex Model Construction Mortenson Chapter 11 Geometric Modeling
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 O’Rourke Chapter 8 Motion Planning.
The Art Gallery Problem
Brute-Force Triangulation
UNC Chapel Hill M. C. Lin Point Location Chapter 6 of the Textbook –Review –Algorithm Analysis –Dealing with Degeneracies.
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
Geometry Vocabulary Test Ms. Ortiz. 1. If two parallel lines are cut by a transversal, then the corresponding angles are congruent.
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Objective 1.01 Apply the properties and definitions of lines and angles to model and solve problems. Vocabulary Acute: an angle that measure less than.
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
Part 6: Graphics Output Primitives (4) 1.  Another useful construct,besides points, straight line segments, and curves for describing components of a.
5 -1 Chapter 5 The Divide-and-Conquer Strategy A simple example finding the maximum of a set S of n numbers.
C o m p u t i n g C O N V E X H U L L S. Presentation Outline 2D Convex Hulls –Definitions and Properties –Approaches: Brute Force Gift Wrapping QuickHull.
1.1 Points, Lines and Planes
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
Center for Graphics and Geometric Computing, Technion 1 Computational Geometry Chapter 8 Arrangements and Duality.
1 11. Polygons Polygons 2D polygons ( 다각형 ) –Polygon sides are all straight lines lying in the same plane 3D polyhedra ( 다면체 )  chap. 12 –Polyhedra.
Delaunay Triangulation on the GPU
1/29/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Triangulations and Guarding Art Galleries Carola Wenk.
Computer Graphics Filling. Filling Polygons So we can figure out how to draw lines and circles How do we go about drawing polygons? We use an incremental.
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
1 Georgia Tech, IIC, GVU, 2006 MAGIC Lab Rossignac.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
Bigyan Ankur Mukherjee University of Utah. Given a set of Points P sampled from a surface Σ,  Find a Surface Σ * that “approximates” Σ  Σ * is generally.
Polygon Triangulation
VORONOI DIAGRAMS BY KATHARINE TISCHER Coordinating Seminar Spring 2013.
CMPS 3130/6130 Computational Geometry Spring 2017
Computer Graphics Filling.
The Art Gallery Problem
Craig Schroeder October 26, 2004
The Art Gallery Problem
Convex Sets & Concave Sets
I. The Problem of Molding
Computational Geometry
Introduction to Algorithms
Transformations and Congruence
Presentation transcript:

1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Hulls & triangulations  Convexity  Convex hull  Delaunay triangulation  Voronoi diagram

2 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Attributes of subset of the plane In what follows, A and B are subsets of the plane: Simply connected polygon (non-convex) Disconnected (multiple components) Connected but with one or more holes Lower- dimensional Convex polygon Not a polygon Non-manifold polygon

3 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Polyloop, boundary, interior, exterior When A is a simply connected polygon. Its boundary, denoted  A, is a polyloop P. VALIDITY ASSUMPTION: We assume that the vertices and edge-interiors of P are pair-wise disjoint P divides space into 3 sets: the boundary: P the interior: iP, the exterior: eP P iP eP

4 SIC / CoC / Georgia Tech MAGIC Lab Rossignac When is a planar set A convex? seg(p,q) is the line segment from p to q A is convex  (  p  A  q  A  seg(p,q)  A ) p q p q p q

5 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the Stringing of A? The “Stringing” S(A) of A is the union of all segments seg(p,q) with p  A and q  A

6 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Prove that A  S(bA) p

7 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Prove that A  S(bA)  p  A, p  seg(p,p)  S(A) In fact, A  S(  A), since opposite rays from each point p of the interior of ∂  A must each exit A at a point of bA p

8 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the convex hull of a set A? The convex hull H(A) is the intersection of all convex sets that contain A. (It is the smallest convex set containing A)

9 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Conjecture: S(A)=H(A) Prove, disprove…

10 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Counter example where S(A)≠H(A) S  segment(p,q) for all p  S and q  SH(S)

11 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Other properties/conjectures? Prove/disprove:  S(A)  H(A)  A convex  S(A) = H(A)  H(A) = union of all triangles with their 3 vertices in A

12 SIC / CoC / Georgia Tech MAGIC Lab Rossignac H(A) is a Tightening? H(A) is the tightening of a polyloop P that contains A in its interior Tightening shrinks P without penetrating in A

13 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the orientation of a polyloop P is oriented clockwise (CW) or counterclockwise (CCW) Often orientation is implicitly encoded in the order in which the vertices are stored. CW CCW

14 SIC / CoC / Georgia Tech MAGIC Lab Rossignac How to compute the orientation? Compute the signed area aP of iP as the sum of signed areas of trapezes between each oriented edge and its orthogonal projection (shadow) on the x-axis. If aP>0, the P is CW. Else, reveres the orientation (vertex order). CW x y a b axax bxbx ayay byby area(a,b):=(a y +b y )(b x –a x )/2

15 SIC / CoC / Georgia Tech MAGIC Lab Rossignac When is a vertex concave/convex? Vertex q a CW polyloop is concave when P makes a left turn at q. If is convex otherwise. CW

16 SIC / CoC / Georgia Tech MAGIC Lab Rossignac When is a vertex a left turn? Consider a sequence of 3 vertices (p, q, r) in a polyloop P. Vertex q is a left turn, written leftTurn(p,q,r), when p q r

17 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the decimation of a vertex? Delete the vertex from P

18 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Concave Vertex Decimation: CVD(P) The CVD algorithm keeps finding and decimating the left-turn vertices of a CW polyloop P until none are left

19 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Conjecture: CVD(P) computes H(P) Prove/disprove….

20 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Counterexample CVD may lead to self-intersecting polyloops Now, all vertices are right turns, but we do not have H(P). In fact the polyloop is invalid (self-intersects).

21 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Can you fix the CVD algorithm?

22 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Preserve validity!  Only do decimations of concave vertices when they preserve validity of the polyloop This vertex should not be decimated

23 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Example of the fixed the CVD algorithm Only decimate concave vertices when the validity of the polyloop is preserved Skip this vertex

24 SIC / CoC / Georgia Tech MAGIC Lab Rossignac How to test the validity of a decimation? What is different between these two decimations? bad good

25 SIC / CoC / Georgia Tech MAGIC Lab Rossignac How to test the validity of a decimation? What is different between these two decimations? bad good

26 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Other vertex in swept triangle! What is different between these two decimations? bad good

27 SIC / CoC / Georgia Tech MAGIC Lab Rossignac How to implement point-in-triangle?  How to test whether point v is in triangle (p,q,r)? v p q r

28 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Use the left-turn test! If leftTurn(p,q,r), leftTurn(p,q,v), leftTurn(q,r,v), leftTurn(r,p,v) are all equal, then v is in the triangle. vpq r all 4 are true vqp r all 4 are false vpq r leftTurn(r,p,v) is false

29 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the complexity of the fixed CVD? Test this vertex v p q r ?

30 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the cost of testing a vertex? Test this vertex v p q r ?

31 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the cost of testing a vertex? Test this vertex v p q r ?  Go through all the remaining vertices and perform a constant cost test: O(n)

32 SIC / CoC / Georgia Tech MAGIC Lab Rossignac How many times is a vertex tested? ??

33 SIC / CoC / Georgia Tech MAGIC Lab Rossignac How many times is a vertex tested?  Test each vertex once and put concave vertices in a queue.  The h vertices on H(P) never become concave. They will not be tested again.  The initial set of concave vertices will be tested at least once.  At least one of them will be decimated.  You only need to retest the vertex preceding a decimation.  So the number of in-triangle tests is < 2n–h… O(n) ? ?

34 SIC / CoC / Georgia Tech MAGIC Lab Rossignac What is the total complexity?  O(n) tests  Each O(n)

35 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Analysis of point-clouds in 2D  Pick a radius r (from statistics of average distance to nearest point)  For each ordered pair of points a and b such that ||ab||<2r, find the positions o of the center of a circle of radius r through a and b such that b is to the right of a as seen from o.  If no other point lies in the circle circ(o,r), then create the oriented edge (a,b) a b a b a b o a b a b o o’

36 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Interpreting the loops in 2D  Chains of pairs of edges with opposite orientations (blue) form dangling polygonal curves that are adjacent to the exterior (empty space) on both sides.  Chains of (red) edges that do not have an opposite edge form loops. They are adjacent to the exterior on their right and to interior on their left.  Each components of the interior is bounded by one or more loops. –It may have holes

37 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Delaunay & Voronoi  How to find furthest place from a set of point sites?  How to compute the circumcenter of 3 points?  What is a planar triangulation of a set of sites?  What is a Delaunay triangulation of a set of sites?  How to compute a Delaunay triangulation?  What is the asymptotic complexity of computing a Delaunay triangulation?  What is the largest number of edges and triangles in a Delaunay triangulation of n sites?  How does having a Delaunay triangulation reduces the cost of finding the closest pair?  What practical problems may be solved by computing a Delaunay triangulation?

38 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Delaunay & Voronoi  What is the Voronoi region of a site?  What properties do Voronoi regions have?  What are the Voronoi points of a set of sites?  What practical problems may be solved by computing a Voronoi diagram of a set of sites?  What is the correspondence (duality) between Voronoi and Delaunay structures?  Explain how to update the Voronoi diagram when a new site is inserted.  What are the natural coordinates of a site?

39 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Find the place furthest from nuclear plants Find the point in the disk that is the furthest from all blue dots

40 SIC / CoC / Georgia Tech MAGIC Lab Rossignac The best place is … The green dot. Find an algorithm for computing it. Teams of 2.

41 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Center of largest disk that fits between points

42 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Algorithm for best place to live max=0; foreach triplets of sites A, B, C { (O,r) = circle circumscribing triangle (A,B,C) found = false; foreach other vertex D {if (||OD||<r) {found=true;};}; if (!found) {if (r>max) {bestO=O; max=r;}; } return (O); Complexity?

43 SIC / CoC / Georgia Tech MAGIC Lab Rossignac pt centerCC (pt A, pt B, pt C) { // circumcenter to triangle (A,B,C) vec AB = A.vecTo(B); float ab2 = dot(AB,AB); vec AC = A.vecTo(C); AC.left(); float ac2 = dot(AC,AC); float d = 2*dot(AB,AC); AB.left(); AB.back(); AB.mul(ac2); AC.mul(ab2); AB.add(AC); AB.div(d); pt X = A.makeCopy(); X.addVec(AB); return(X); }; Circumcenter A B C AC AB AB.left AC.left X 2AB  AX=AB  AB 2AC  AX=AC  AC

44 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Delaunay triangles 3 sites (vertices) form a Delaunay triangle if their circumscribing circle does not contain any other site.

45 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Inserting points one-by-one

46 SIC / CoC / Georgia Tech MAGIC Lab Rossignac The best place is a Delaunay circumcenter Center of the largest Delaunay circle (stay in convex hull of cites)

47 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Properties of Delaunay triangulations  If you draw a circle through the vertices of ANY Delaunay triangle, no other sites will be inside that circle.  It has at most 3n-6 edges and at most 2n-5 triangles.  Its triangles are fatter than those of any other triangulation. –If you write down the list of all angles in the Delaunay triangulation, in increasing order, then do the same thing for any other triangulation of the same set of points, the Delaunay list is guaranteed to be lexicographically smaller.

48 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Closest pair application  Each point is connected to its nearest neighbor by an edge in the triangulation.  It is a planar graph, it has at most 3n-6 edges, where n is the number of sites.  So, once you have the Dealunay triangulation, if you want to find the closest pair of sites, you only have to look at 3n-6 pairs, instead of all n(n-1)/2 possible pairs.

49 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Applications of Delaunay triangulations  Find the best place to build your home  Finite element meshing for analysis: nice meshes  Triangulate samples for graphics

50 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Alpha shapes  How to obtain the point cloud interpretation (red polyloops and blue curves) from the Delaunay triangulation?

51 SIC / CoC / Georgia Tech MAGIC Lab Rossignac School districts and Voronoi regions Each school should serve people for which it is the closest school. Same for the post offices. Given a set of schools, find the Voronoi region that it should serve. Voronoi region of a site = points closest to it than to other sites

52 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Properties of Voronoi regions  All of the Voronoi regions are convex polygons. –Infinite regions correspond to sites on the convex hull.  The boundary between adjacent regions is a line segment –It is on the bisector of the two sites.  A Voronoi points is where 3 or more Voronoi regions meet. –It is the circumcenter of these 3 sites –and there are no other sites in the circle. Voronoi diagram = dual of Delaunay Triangulation To build the Delaunay triangulation from a Voronoi diagram, draw a line segment between any two sites whose Voronoi regions share an edge.

53 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Insertion algorithms for Voronoi Diagrams Inserts the points one at a time into the diagram. Whenever a new point comes in, we need to do three things. First, we need to figure out which of the existing Voronoi cells contains the new site. Second, we need to "walk around" the boundary of the new site's Voronoi region, inserting new edges into the diagram. Finally, we delete all the old edges sticking into the new region.

54 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Divide and conquer alg Discovered by Shamos and Hoey. Split the points into two halves, the leftmost n/2 points, which we'll color bLue, and the rightmost n/2 points, which we'll color Red. Recursively compute the Voronio diagram of the two halves. Finally, merge the two diagrams by finding the edges that separate the bLue points from the Red points The last step can be done in linear time by the "walking ant" method. An ant starts down at -infinity, walking upward along the path halfway between some blue point and some red point. The ant wants to walk all the way up to +infinity, staying as far away from the points as possible. Whenever the ant gets to a red Voronoi edge, it turns away from the new red point. Whenever it hits a blue edge, it turns away from the new blue point. There are a few surprisingly difficult details left to deal with, like how does the ant know where to start, and how do you know which edge the ant will hit next. (The interested reader is strongly encouraged to consult the standard computational geometry literature for solutions to these details.)

55 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Assigned Reading    