Introduction Duality Arrangements Arrangements and Duality Computational Geometry Lecture 11: Arrangements and Duality Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Three Points on a Line Question: In a set of n points, are there 3 points on a line? Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Three Points on a Line Question: In a set of n points, are there 3 points on a line? Naive algorithm: tests all triples in O ( n 3 ) time Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Three Points on a Line Question: In a set of n points, are there 3 points on a line? Naive algorithm: tests all triples in O ( n 3 ) time Faster algorithm: uses duality and arrangements Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Three Points on a Line Question: In a set of n points, are there 3 points on a line? Naive algorithm: tests all triples in O ( n 3 ) time Faster algorithm: uses duality and arrangements Note: other motivation in chapter 8 of the book Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality ℓ : y = mx + b p = ( p x , p y ) Note: Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality primal plane dual plane p ∗ : y = p x x − p y ℓ : y = mx + b ℓ ∗ = ( m, − b ) p = ( p x , p y ) point p = ( p x , p y ) �→ line p ∗ : y = p x x − p y line ℓ : y = mx + b �→ point ℓ ∗ = ( m , − b ) Note: Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality primal plane dual plane p ∗ : y = p x x − p y ℓ : y = mx + b ℓ ∗ = ( m, − b ) p = ( p x , p y ) point p = ( p x , p y ) �→ line p ∗ : y = p x x − p y line ℓ : y = mx + b �→ point ℓ ∗ = ( m , − b ) Note: self inverse ( p ∗ ) ∗ = p , ( ℓ ∗ ) ∗ = ℓ Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality primal plane dual plane p ∗ : y = p x x − p y ℓ : y = mx + b ℓ ∗ = ( m, − b ) p = ( p x , p y ) point p = ( p x , p y ) �→ line p ∗ : y = p x x − p y line ℓ : y = mx + b �→ point ℓ ∗ = ( m , − b ) Note: does not handle vertical lines Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality primal plane dual plane p ∗ : y = p x x − p y ℓ : y = mx + b mp x + b − p y p x m − p y + b ℓ ∗ = ( m, − b ) p = ( p x , p y ) Duality preserves vertical distances Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality primal plane dual plane p ∗ : y = p x x − p y ℓ : y = mx + b mp x + b − p y p x m − p y + b ℓ ∗ = ( m, − b ) p = ( p x , p y ) Duality preserves vertical distances ⇒ incidence preserving: p ∈ ℓ if and only if ℓ ∗ ∈ p ∗ Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality primal plane dual plane p ∗ : y = p x x − p y ℓ : y = mx + b mp x + b − p y p x m − p y + b ℓ ∗ = ( m, − b ) p = ( p x , p y ) Duality preserves vertical distances ⇒ incidence preserving: p ∈ ℓ if and only if ℓ ∗ ∈ p ∗ ⇒ order preserving: p lies below ℓ if and only if ℓ ∗ lies below p ∗ Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality It can be applied to other objects, like segments primal plane ℓ q s p Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Duality It can be applied to other objects, like segments primal plane dual plane p ∗ q ∗ ℓ q ℓ ∗ s p s ∗ The dual of a segment is a double wedge Question: What line would dualize to a point in the right part of the double wedge? Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Usefulness of Duality Why use duality? It gives a new perspective! Detecting three points on a line dualizes to detecting three lines intersecting in a point primal plane dual plane p 3 ∗ p 1 ∗ y ℓ y p 2 ∗ p 4 p 3 p 4 ∗ p 2 x x ℓ ∗ p 1 Computational Geometry Lecture 11: Arrangements and Duality
Introduction Duality Arrangements Usefulness of Duality Why use duality? It gives a new perspective! Detecting three points on a line dualizes to detecting three lines intersecting in a point primal plane dual plane p 3 ∗ p 1 ∗ y ℓ y p 2 ∗ p 4 p 3 p 4 ∗ p 2 x x ℓ ∗ p 1 Next we use arrangements Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Arrangement A ( L ) : subdivision induced by a set of lines L edge consists of faces, edges and vertices (some unbounded) arrangements consist of face other geometric objects too, like line segments, circles, higher-dimensional objects vertex Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Arrangement A ( L ) : subdivision induced by a set of lines L edge consists of faces, edges and vertices (some unbounded) arrangements consist of face other geometric objects too, like line segments, circles, higher-dimensional objects vertex Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Combinatorial Complexity: ≤ n ( n − 1 ) / 2 vertices ≤ n 2 edges edge ≤ n 2 / 2 + n / 2 + 1 faces: add lines incrementally n face ∑ 1 + i = n ( n + 1 ) / 2 + 1 i = 1 equality holds in simple vertex arrangements Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Combinatorial Complexity: ≤ n ( n − 1 ) / 2 vertices ≤ n 2 edges edge ≤ n 2 / 2 + n / 2 + 1 faces: add lines incrementally n face ∑ 1 + i = n ( n + 1 ) / 2 + 1 i = 1 equality holds in simple vertex arrangements Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Combinatorial Complexity: ≤ n ( n − 1 ) / 2 vertices ≤ n 2 edges edge ≤ n 2 / 2 + n / 2 + 1 faces: add lines incrementally n face ∑ 1 + i = n ( n + 1 ) / 2 + 1 i = 1 equality holds in simple vertex arrangements Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Combinatorial Complexity: ≤ n ( n − 1 ) / 2 vertices ≤ n 2 edges edge ≤ n 2 / 2 + n / 2 + 1 faces: add lines incrementally n face ∑ 1 + i = n ( n + 1 ) / 2 + 1 i = 1 equality holds in simple vertex arrangements Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Arrangements of Lines Combinatorial Complexity: ≤ n ( n − 1 ) / 2 vertices ≤ n 2 edges edge ≤ n 2 / 2 + n / 2 + 1 faces: add lines incrementally n face ∑ 1 + i = n ( n + 1 ) / 2 + 1 i = 1 equality holds in simple vertex arrangements Overall O ( n 2 ) complexity Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Constructing Arrangements Goal: Compute A ( L ) in bounding box in DCEL representation plane sweep for line segment intersection: O (( n + k ) log n ) = O ( n 2 log n ) faster: incremental construction Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Constructing Arrangements Goal: Compute A ( L ) in bounding box in DCEL representation plane sweep for line segment intersection: O (( n + k ) log n ) = O ( n 2 log n ) faster: incremental construction Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Constructing Arrangements Goal: Compute A ( L ) in bounding box in DCEL representation plane sweep for line segment intersection: O (( n + k ) log n ) = O ( n 2 log n ) faster: incremental construction Computational Geometry Lecture 11: Arrangements and Duality
Introduction Incremental Construction Duality Motion Planning Arrangements k-Levels Incremental Construction ℓ i Algorithm ConstructArrange- ment ( L ) Input. Set L of n lines Output. DCEL for A ( L ) in B ( L ) 1. Compute bounding box B ( L ) 2. Construct DCEL for subdivision induced by B ( L ) 3. for i ← 1 to n 4. do insert ℓ i Computational Geometry Lecture 11: Arrangements and Duality
Recommend
More recommend