1 / 40

An Introduction to Computational Geometry: Arrangements and Duality

An Introduction to Computational Geometry: Arrangements and Duality. Joseph S. B. Mitchell Stony Brook University. Some images from [O’Rourke, Computational Geometry in C, 2 nd Edition, Chapter 6]. Arrangement of Lines. 1. 2. 3. 4. 5.

keishat
Download Presentation

An Introduction to Computational Geometry: Arrangements and Duality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Introduction to Computational Geometry:Arrangements and Duality Joseph S. B. Mitchell Stony Brook University Some images from [O’Rourke, Computational Geometry in C, 2nd Edition, Chapter 6]

  2. Arrangement of Lines 1 2 3 4 5 A partition of the plane into vertices, edges, cells, by a finite set of lines.

  3. [O’Rourke, Chapter 6]

  4. Sign Vectors 1 (+,+,+,+,+) 2 3 (+,+,-,-,-) (0,-,-,+,+) (+,0,-,0,0) 4 (-,-,-,-,-) 5 A partition of the plane into vertices, edges, cells, by a finite set of lines.

  5. Combinatorics of Arrangements of Lines • Arrangement is simple if • No 2 lines are parallel; and • No 3 lines pass through a common point • Theorem 6.2.1: In a simple arrangement of n lines, V=n(n-1)/2, E=n2, F=n(n-1)/2+n+1. These are upper bounds in a nonsimple arrangement.

  6. Proof Consider a simple arrangement; non-simple arrangements only have fewer vertices, edges and faces

  7. Proof (cont) Assume: The n lines form a simple arrangement • Vertices: Every pair of lines defines a unique vertex: {n choose 2} = n(n-1)/2 • Edges: Each line is crossed at n-1 distinct points by the other n-1 lines: This yields n edges per line, so n2 total • Faces: • Use Euler (include a “vertex at infinity”, where all unbounded edges are incident): f-e+v=f-n2+(1+n(n-1)/2)=2, so f=1+n+n(n-1)/2 • Use sweep argument (as done in class)

  8. Zone of a Line in an Arrangement of Lines The zone, Z(L), of line L in an arrangement of lines is the set of all cells intersected by L. The complexity of the zone, |Z(L)|, is the total number of edges of the cells of the zone. (Some edges may be counted twice.) The zone of the blue line (x-axis) is highlighted in red: It has complexity 15

  9. Zone Theorem Theorem 6.2.2: The total number of edges in all the cells that intersect any one line L in an arrangement of n lines is O(n). Specifically, |Z(L)| ≤ 6n.

  10. Zone Theorem: Proof Proof: By induction on n. WLOG: L is horizontal We show that the number of “left contributions” is at most 3n. Clearly true for n=1. Induction Hypothesis (IH): true for n≤k.

  11. Zone Theorem: Proof Consider a set of k+1 lines; remove the one, Lk+1 , with rightmost crossing along L. When we add Lk+1 back, we get at most one new left contribution along it, and potentially split 2 other left contributions. Thus, going from k lines to k+1 lines increases number of left contributions by at most 3: total is at most 3(k+1) for k+1 lines. By induction, we have proved that the number of left contributions is at most 3n, for any n Thus, total zone has at most 6n complexity

  12. Constructing an Arrangement of Lines Corollary to Zone Thm: The arrangement of n lines can be constructed (e.g., in a winged-edge data structure) in time O(n2) Algorithm: Incremental

  13. Inserting a Line in the Arrangement

  14. Point-Line Duality Lines dual to the 4 points L : y = 2ax – b  p : (a,b) Applet: (uses L : y = ax – b  p : (a,b) ) http://nms.lcs.mit.edu/~aklmiu/6.838/dual/

  15. Relationship to Parabola y=x2

  16. Example

  17. Example

  18. Duality Properties D(D(x)) = x D is one-to-one correspondence between all nonvertical lines and all points in the plane Point p lies on line L iff point D(L) lies on line D(p) Lines L1 and L2 intersect at point p iff the line D(p) passes through the two points D(L1) and D(L2) If point p lies above line L, then line D(p) lies below point D(L); if p lies below L, then D(p) lies above D(L)

  19. Duality Properties D(D(x)) = x D is one-to-one correspondence between all nonvertical lines and all points in the plane

  20. Duality Properties Point p lies on line L iff point D(L) lies on line D(p)

  21. Duality Properties Lines L1 and L2 intersect at point p iff the line D(p) passes through the two points D(L1) and D(L2)

  22. Duality Properties If point p lies above line L, then line D(p) lies below point D(L); if p lies below L, then D(p) lies above D(L)

  23. Dual of a Triangle Applet

  24. Dual of a Line Segment D(r) D(q) q D(p) r D(L) p L Applet

  25. Applications of Duality Degeneracy testing Halfplane intersection/convex hull k-Nearest Neighbors, higher order Voronoi diagrams Hidden surface removal Aspect graphs Smallest polytope shadow Ham sandwich cuts Red-blue matching Segment stabbing Radial sorting/visibility graphs Minimum area triangle

  26. Degeneracy Testing • Applet Given n points in the plane: Decide if some 3 (or more) of them are collinear Naïve: Check all triples: O(n3) Smarter: Sort points by angle around each point pi : n sorts, total O(n2 log n)

  27. Degeneracy Testing Given n points in the plane: Decide if some 3 (or more) of them are collinear Use duality: Build arrangement of the n lines, D(pi), in time O(n2), and check if there is some vertex having degree 6 or more (where 3 or more lines pass through – such is dual to a line passing through 3 or more points) Total time: O(n2) O(n2) space, but O(n) possible with “topological sweep”

  28. Halfplane Intersection/Convex Hull • Applet Given n halfplanes, compute their intersection View in dual: lower envelope of n lines corresponds to upper convex hull of n points that are duals of the lines

  29. Segment Stabbing Given n line segments in the plane Decide if there exists a line L that stabs all of them (or find a line L that stabs as manhy as possible) View in dual: n double wedges (duals of segments) overlay to give an arr of 2n lines (build in O(n2)). Look for a point that lies in as many double wedges as possible (BFS/DFS in faces of arr)

  30. Ham Sandwich Cut Bisector of a set S of points: A line L that has at most |S|/2 points strictly on each side of L Ham Sandwich Theorem: Given a set S=AB of red points (A) and blue points (B), there exists a line L that bisects both A and B

  31. Ham Sandwich Cut L

  32. Ham Sandwich Cut: Example

  33. Ham Sandwich Cut: Example

  34. Ham Sandwich Cut: Example

  35. Ham Sandwich Cut: Example

  36. Ham Sandwich Cuts Application: Noncrossing red-blue matching Higher dimensions:

  37. Ham Sandwich Cut

  38. Higher Dimensions In d dimensions: Arrangement of n hyperplanes has overall complexity O(nd) Zone of a plane: Zone Theorem: O(nd-1) Algorithm to construct arr: O(nd) Point-hyperplane duality

More Related