geometry of castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 castable objects...

30
The Geometry of Casting 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement a divide and conquer algorithm 3 A Plane Sweep Algorithm representation of the output merge edges correctness and cost analysis MCS 481 Lecture 9 Computational Geometry Jan Verschelde, 6 February 2019 Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 1 / 30

Upload: others

Post on 24-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

MCS 481 Lecture 9Computational Geometry

Jan Verschelde, 6 February 2019

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 1 / 30

Page 2: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 2 / 30

Page 3: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

manufacturing with moldsMetal objects are often manufactured by casting:

1 liquid metal is poured into a mold,2 the liquid solidifies,3 the object is removed from the mold.

Two constraints:1 the top of the object must have a flat surface,2 we do not want to break the mold when removing the object.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 3 / 30

Page 4: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

Do not break the mold!

Consider the mold below:

Removing the solified liquid is not possible without breaking the mold.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 4 / 30

Page 5: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

comparing the orientation of the objects

Compare the orientation, relative to the direction of removal:

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 5 / 30

Page 6: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

outward normals to the facets of the objects

Consider outward pointing normals, perpendicular to the facets:

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 6 / 30

Page 7: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 7 / 30

Page 8: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

polyhedra and outward normals

Definition (polyhedra and polytopes)A polyhedron is the intersection of a finite number n of half planes

aix + biy + ciz ≤ di , i = 1,2, . . . ,n.A polytope is a bounded polyhedron.

Example: the unit cube is defined by 6 inequalities:−x ≤ 0, x ≤ 1, −y ≤ 0, y ≤ 1, −z ≤ 0, z ≤ 1.

The vertices of the unit cube are(0,0,0), (1,0,0), (0,1,0), (0,0,1), (1,1,0), (1,0,1), (0,1,1), (1,1,1).

Definition (outward normals and facets)Every half plane ax + by + cz ≤ d has an outward normal (a,b, c).

A 2-dimensional face of a polyhedron is called a facet.A 1-dimensional face of a polyhedron is called an edge.A 0-dimensional face of a polyhedron is called a vertex.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 8 / 30

Page 9: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

the tetrahedron

Exercise 1: The tetrahedron is the 3-dimensional version of thetriangle. It is the polytope spanned by all convex combinations of thepoints {(0,0,0), (1,0,0), (0,1,0), (0,0,1)}.How many half planes are needed to define the tetrahedron?Compute the coefficients (ai ,bi , ci ,di) of the half planes whichintersection defines the tetrahedron.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 9 / 30

Page 10: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

necessary and sufficient conditions

Lemma (the removable criterion)A polyhedron P can be removed by a horizontal translationif and only if all outward pointing normals to the nonhorizontal facetsof P make an angle of at least π/2 with the vector (0,0,1).

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 10 / 30

Page 11: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

proof by contradiction

Lemma (the removable criterion)A polyhedron P can be removed by a horizontal translationif and only if all outward pointing normals to the nonhorizontal facetsof P make an angle of at least π/2 with the vector (0,0,1).

Proof. If and only if means⇒ and⇐.

⇒: By contraposition: suppose there is one outward normal with anglestrictly less than π/2, then we cannot remove P.

⇐: By contraposition: suppose we cannot remove P, then we mustshow there is at least one outward normal with angle < π/2.Let q ∈ P be the point where q collides with facet f of the mold.Then q is about to move into the mold, which implies that the outernormal to f makes an angle greater than π/2 with (0,0,1).But then (0,0,1) makes an angle < π/2 with the outer normal to f .

Q.E.D.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 11 / 30

Page 12: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

castable objects

In order to test whether a polyhedron P is castable,we try all facets as top facets.

For every candidate top facet,we compute the angles with all other n − 1 facets.If all angles are at least π/2, then the object is castable.

Theorem (castable objects criterion)Let P be a polyhedron with n facets.We can decide whether P is castable in O(n2) time.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 12 / 30

Page 13: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 13 / 30

Page 14: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

half plane intersection

The input to our problem is a set of n triplets:

Let H = { H1,H2, . . . ,Hn } be a set of half planes,Hi = { (x , y) | aix + biy ≤ ci }, i = 1,2, . . . ,n.

Output:n⋂

i=1

Hi intersection of all half planes.

Observe the following:a half plane is convex,the intersection of any two convex sets is convex,

thus the intersection of n half planes is convex.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 14 / 30

Page 15: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 15 / 30

Page 16: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

a divide and conquer algorithm

Algorithm INTERSECTHALFPLANES

Input: Hi = (ai ,bi , ci), i = 1,2, . . . ,n.

Output: C =n⋂

i=1

Hi , Hi = { (x , y) | aix + biy ≤ ci }.

1 if n = 1 then2 C = H1

else3 split H into H1 and H2, #H1 = dn/2e, #H2 = bn/2c4 C1 = INTERSECTHALFPLANES(H1)

5 C2 = INTERSECTHALFPLANES(H2)

6 C = INTERSECTCONVEXREGIONS(C1,C2)

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 16 / 30

Page 17: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

applying the algorithm MAPOVERLAY

The algorithm MAPOVERLAY takes O((n + k) log(n)) timeon inputs of size n, andon outputs of size k .

What is k for this problem?

The polygonal region C can have at most n half planes,therefore, at most n vertices and at most n edges, so k ≤ n.

Thus, step 6 of INTERSECTHALFPLANES takes O(n log(n)) time.The algorithm INTERSECTHALFPLANES has thus time T (n):

T (n) ={

O(1) if n = 1,O(n log(n)) + 2T (n/2) if n > 1.

Resolving the recurrence for T (n) yields O(n(log(n))2).Exercise 2: Show that T (n) becomes O(n log(n))if the O(n log(n)) in the formula for T (n) is replaced by O(n).

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 17 / 30

Page 18: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 18 / 30

Page 19: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

representation of the output

How to storen⋂

i=1

Hi? Consider for example:

1 2 3 4

The top vertex top(C) separatesleft(C) = [H4,H2] fromright(C) = [H1,H3].

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 19 / 30

Page 20: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

special cases

1 2 3 4

What if there is no top vertex top(C)? Take∞.What if the top is horizontal? Take leftmost as top(C).

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 20 / 30

Page 21: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 21 / 30

Page 22: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

merge edges

Intersect the green polygon with the right of the right edges:

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 22 / 30

Page 23: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

moving a sweep line

The event points are the end points of the edges:

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 23 / 30

Page 24: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

handling event points

Consider the event point p, the upper end point of edge e,e lies on a half plane of left(C1):

`

C1

C2p

e

Does e contribute to C = C1 ∩ C2?Yes, because e intersects left(C2).

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 24 / 30

Page 25: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

the order of adding half planes

Consider the event point p, the upper end point of edge e,e lies on a half plane of left(C1):

`

C1

C2p

ev

The half plane through e should be added only afterthe intersection point v is detected.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 25 / 30

Page 26: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

two cases

At an event point:Sometimes we add more than one half plane.The order of adding matters.

`

C1

C2p

ev

`

C1

C2p

e

v

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 26 / 30

Page 27: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

The Geometry of Casting

1 Castable Objectsmanufactoring with moldspolyhedra and castable objects

2 Half Plane Intersectionproblem statementa divide and conquer algorithm

3 A Plane Sweep Algorithmrepresentation of the outputmerge edgescorrectness and cost analysis

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 27 / 30

Page 28: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

correctness

For the correctness of the algorithm INTERSECTHALFPLANES

to compute C, we need to show that

1 all half planes bounding the edges of C are added, and2 the half planes are added in the correct order.

Exercise 3: Describe the algorithm INTERSECTCONVEXREGIONS withpseudo code.Show that the order of the tests implies that the half planes are addedin the correct order.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 28 / 30

Page 29: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

cost analysis

Theorem (cost of convex region intersection)The cost of INTERSECTCONVEXREGIONS is O(n), for n half planes.

Then the time T (n) for INTERSECTHALFPLANES has the recurrence

T (n) ={

O(1) if n = 1,O(n) + 2T (n/2) if n > 1.

This recurrence has O(n log(n)) as solution.

Corollary (cost of half plane intersection)The intersection of n half planes can be computed in O(n log(n)) timeand O(n) storage.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 29 / 30

Page 30: Geometry of Castinghomepages.math.uic.edu/~jan/mcs481/casting.pdf · 1 Castable Objects manufactoring with molds polyhedra and castable objects 2 Half Plane Intersection problem statement

recommended assignments

We covered sections 4.1 and 4.2 in the textbook.

Consider the following activities, listed below.

1 Write the solutions to exercises 1, 2, and 3.2 Consider the exercises 2,4,5 in the textbook.

Computational Geometry (MCS 481) Geometry of Casting L-9 6 February 2019 30 / 30