an introduction to computational geometry: arrangements...
TRANSCRIPT
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
2
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]
Sign Vectors
4
1 2
3
4
5 A partition of the plane into vertices, edges, cells, by a finite set of lines.
(+,+,-,-,-)
(+,+,+,+,+)
(-,-,-,-,-)
(0,-,-,+,+) (+,0,-,0,0)
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.
5
Proof
Consider a simple arrangement; non-simple arrangements only have fewer vertices, edges and faces
6
Proof (cont)
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) 7
Assume: The n lines form a simple arrangement
Zone of a Line in an Arrangement of Lines
8
The zone of the blue line (x-axis) is highlighted in red: It has complexity 15
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.)
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.
9
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.
10
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 11
12
13
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
14
Inserting a Line in the Arrangement
15
Point-Line Duality
16
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/
Relationship to Parabola y=x2
17
Example
18
Example
19
Duality Properties
1. D(D(x)) = x
2. D is one-to-one correspondence between all nonvertical lines and all points in the plane
3. Point p lies on line L iff point D(L) lies on line D(p)
4. Lines L1 and L2 intersect at point p iff the line D(p) passes through the two points D(L1) and D(L2)
5. 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) 20
Duality Properties
1. D(D(x)) = x
2. D is one-to-one correspondence between all nonvertical lines and all points in the plane
21
Duality Properties
3. Point p lies on line L iff point D(L) lies on line D(p)
22
Duality Properties
4. Lines L1 and L2 intersect at point p iff the line D(p) passes through the two points D(L1) and D(L2)
23
Duality Properties
5. 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)
24
Dual of a Line Segment
26
p
q D(p)
D(q)
D(L) L
r
D(r) 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 27
Degeneracy Testing
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)
28
Applet
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”
29
Halfplane Intersection/Convex Hull
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
30
Applet
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)
31
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
32
Ham Sandwich Cut
33
L
Ham Sandwich Cut: Example
34
Ham Sandwich Cut: Example
35
Ham Sandwich Cut: Example
36
Ham Sandwich Cut: Example
37
Ham Sandwich Cuts
Application: Noncrossing red-blue matching
Higher dimensions:
38
Ham Sandwich Cut
39
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
40