Yazd Univ. Linear Programming- Manufacturing with Computational Geometry Molds Manufacturing with Molds Half-plane intersection problem Computing 1395-2 intersection of two convex polygons Linear Programming Randomized Linear Programming 1 / 36
Casting process Yazd Univ. Computational Geometry Manufacturing with Molds Half-plane intersection problem Computing intersection of two convex polygons Linear Programming Randomized Linear Programming 2 / 36
The Geometry of Casting top facet ordinary facet Yazd Univ. Every ordinary facet f has a corresponding facet in Computational the mold, which we denote by ˆ f . Geometry castable object Manufacturing with Molds Half-plane intersection problem Computing intersection of two top facet convex polygons Linear Programming Randomized Linear Programming 3 / 36
The Geometry of Casting Question: Yazd Univ. Given an object P , can it be removed from its mold by a single translation? Computational In other words, we want to decide whether a direction � Geometry d exists such that P can be translated to infinity in direction � Manufacturing with d without intersecting the interior of the mold during the Molds translation. Half-plane intersection problem Observation: Computing intersection of two Every ordinary facet f must move away from, or slide convex polygons along, its corresponding facet ˆ f of the mold. Linear Programming Randomized Linear Programming 4 / 36
The Geometry of Casting Angle between two vectors in 3d: Yazd Univ. The angle of the vectors is the smaller of the two angles measured in the plane determined by them. Computational Geometry Manufacturing with Molds Half-plane intersection problem Computing intersection of two convex polygons Linear Programming Randomized Linear Programming 5 / 36
Lemma 4.1 P can be removed from its mold in direction d if and only if d makes an angle of at least π/ 2 with the outward Yazd Univ. normal of all ordinary facets of P . Computational Geometry f Manufacturing with Molds P Half-plane � d intersection problem p Computing intersection of two convex polygons η ( ˆ � f ) Linear Programming Randomized Linear Programming 6 / 36
1-1 corresponding between direction and points Yazd Univ. z Computational Geometry z = 1 Manufacturing with Molds Half-plane intersection problem Computing intersection of two convex polygons Linear y Programming Randomized Linear Programming x 7 / 36
By Lemma 4.1 η = ( � � η x , � η y , � η z ) : outward normal of an ordinary facet � d = ( d x , d y , 1) : removal direction Yazd Univ. η, � η.� ∠ ( � d ) ≥ π/ 2 ⇐ ⇒ � d ≤ 0 Computational η x × d x + � � η y × d y + � η z ≤ 0 Geometry This inequality describe a half-plane in the plane Manufacturing with z = 1 . Molds Half-plane intersection problem Computing intersection of two convex polygons Linear Programming Randomized Linear Programming 8 / 36
An object P is castable, for a fixed top facet ⇐ ⇒ the Yazd Univ. intersection of half-planes is non-empty. Computational If the intersection problem is solvable in O ( A ) time, Geometry then the castability problem can be solved in O ( An ) time. Manufacturing with Molds We will solve the intersect5ion problem in O ( n ) Half-plane expected time. intersection problem Theorem 4.2: In O ( n 2 ) expected time and using Computing intersection of two O ( n ) storage it can be decided whether a polyhydron convex polygons with n facets is castable. Linear Programming Randomized Linear Programming 9 / 36
Half-plane intersection problem Problem: Yazd Univ. Given a set H = { h 1 , h 2 , . . . , h n } of half-planes, find the intersection of them. Computational Geometry Given a set of n linear constraints in two variables, is there a point in the plane, find all points that satisfy Manufacturing with all the constraints. Molds Half-plane intersection Note: problem Computing For casting problem, we do not need to find the intersection of two convex polygons intersection of half-planes. Here we consider a more Linear general problem. Programming Randomized Linear Programming 10 / 36
Half-plane intersection problem Observations: Since a half-plane is convex, the intersection of Yazd Univ. half-planes is convex. Computational Geometry Since the intersection is convex, every half-plane bounding line can contribute at most one edge. Manufacturing with A few examples of intersections of half-planes: Molds Half-plane (i) (ii) (iii) intersection problem Computing intersection of two convex polygons Linear Programming Randomized Linear Programming (iv) (v) 11 / 36
Computing the intersection of n half-planes An straightforward divide-and-conquer algorithm: Yazd Univ. Algorithm I NTERSECT H ALFPLANES ( H ) Input. A set H of n half-planes in the plane. Computational Output. The convex polygonal region C : = � h ∈ H h . Geometry if card ( H ) = 1 1. then C ← the unique half-plane h ∈ H 2. Manufacturing with else Split H into sets H 1 and H 2 of size ⌈ n / 2 ⌉ and ⌊ n / 2 ⌋ . 3. Molds C 1 ← I NTERSECT H ALFPLANES ( H 1 ) 4. Half-plane intersection C 2 ← I NTERSECT H ALFPLANES ( H 2 ) 5. problem C ← I NTERSECT C ONVEX R EGIONS ( C 1 , C 2 ) 6. Computing intersection of two convex polygons Time complexity: Linear Programming � O (1) Randomized Linear if n = 1 Programming T ( n ) = 2 T ( n/ 2) + O ( n log n ) if n > 1 T ( n ) ∈ O ( n log 2 n ) . 12 / 36
Computing the intersection of n half-planes An straightforward divide-and-conquer algorithm: Yazd Univ. Algorithm I NTERSECT H ALFPLANES ( H ) Input. A set H of n half-planes in the plane. Computational Output. The convex polygonal region C : = � h ∈ H h . Geometry if card ( H ) = 1 1. then C ← the unique half-plane h ∈ H 2. Manufacturing with else Split H into sets H 1 and H 2 of size ⌈ n / 2 ⌉ and ⌊ n / 2 ⌋ . 3. Molds C 1 ← I NTERSECT H ALFPLANES ( H 1 ) 4. Half-plane intersection C 2 ← I NTERSECT H ALFPLANES ( H 2 ) 5. problem C ← I NTERSECT C ONVEX R EGIONS ( C 1 , C 2 ) 6. Computing intersection of two convex polygons Time complexity: Linear Programming � O (1) Randomized Linear if n = 1 Programming T ( n ) = 2 T ( n/ 2) + O ( n log n ) if n > 1 T ( n ) ∈ O ( n log 2 n ) . 12 / 36
Computing the intersection of n half-planes Question: Can we compute the intersection of two convex polygons in o ( n log n ) time? Yazd Univ. Answer: Yes, we can. Computational Geometry Manufacturing with Molds Half-plane intersection problem Computing intersection of two convex polygons Linear Programming Randomized Linear Programming v e 1 e 2 13 / 36
Computing the intersection of n half-planes Question: Can we compute the intersection of two convex polygons in o ( n log n ) time? Yazd Univ. Answer: Yes, we can. Computational Geometry Manufacturing with Molds Half-plane intersection problem Computing intersection of two convex polygons Linear Programming Randomized Linear Programming v e 1 e 2 13 / 36
Computing intersection of two convex polygons Yazd Univ. Computational Geometry h 2 Manufacturing with h 1 Molds h 3 Half-plane intersection right boundary problem Computing intersection of two h 4 convex polygons left boundary Linear h 5 Programming Randomized Linear Programming L left ( C ) = h 3 , h 4 , h 5 L right ( C ) = h 2 , h 1 14 / 36
Computing intersection of two convex polygons We use a plane sweep algorithm: Yazd Univ. Note: At most 4 line segments intersect the sweep line. Computational Geometry C 1 C 2 Manufacturing with Molds right edge C1 = nil left edge C2 Half-plane intersection problem right edge C2 Computing left edge C1 intersection of two convex polygons Linear Programming Randomized Linear Programming 15 / 36
Computing intersection of two convex polygons Yazd Univ. At each event point some new edge e appears on the boundary. Computational Geometry To handle the edge e : several cases: e belongs to C 1 or to C 2 , and whether it is on the left or the right Manufacturing with boundary. Molds Half-plane We consider the case when e is on the left boundary intersection problem of C 1 . Computing p : the upper endpoint of e . intersection of two convex polygons Three case (based on C ): Linear (1) the edge with p as upper endpoint, Programming Randomized Linear (2) the edge with e ∩ left _ edge _ C 2 as upper Programming endpoint, and (3) the edge with e ∩ right _ edge _ C 2 as upper endpoint. 16 / 36
Computing intersection of two convex polygons It performs the following actions. Yazd Univ. Computational Geometry (i) (ii) p p Manufacturing with Molds e right edge C2 Half-plane right edge C2 intersection problem Computing e intersection of two convex polygons Linear Programming Randomized Linear Programming 17 / 36
Computing intersection of two convex polygons Yazd Univ. p Computational Geometry Manufacturing with Molds e Half-plane intersection problem Computing intersection of two convex polygons left edge C2 Linear Programming Randomized Linear Programming 18 / 36
Recommend
More recommend