400 likes | 418 Views
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.
E N D
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]
Arrangement of Lines 1 2 3 4 5 A partition of the plane into vertices, edges, cells, by a finite set of lines.
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.
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.
Proof Consider a simple arrangement; non-simple arrangements only have fewer vertices, edges and faces
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)
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
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.
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.
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
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
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/
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)
Duality Properties D(D(x)) = x D is one-to-one correspondence between all nonvertical lines and all points in the plane
Duality Properties Point p lies on line L iff point D(L) lies on line D(p)
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)
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)
Dual of a Triangle Applet
Dual of a Line Segment D(r) D(q) q D(p) r D(L) p L Applet
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
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)
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”
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
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)
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=AB of red points (A) and blue points (B), there exists a line L that bisects both A and B
Ham Sandwich Cuts Application: Noncrossing red-blue matching Higher dimensions:
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