Next: About this document
COMP 205 Homework 5 Feb 25, 1998, Due: Mar 23, 1998
Problems
- Incremental algorithm for 3D Convex Hulls: Let Q correspond
to the convex hull of
. Prove that the
visibility region of Q from
is connected. Prove that the boundary
edges of the visibility region form a simple cycle. How can you use this
property to improve the performance of the 3D convex hull algorithm?
(15 points)
- Contact Determination: A fundamental component of dynamic
simulation is accurate and efficient collision detection. Let's consider
a convex polytope, P, with n vertices (n is a large value). Assume
that each face of P is a triangle and that
it is undergoing rigid motion inside a unit cube. We want to check for
collision with any of the six faces of the cube. It is assumed that P is
contained inside the cube.
- Show that the following is a necessary and sufficient condition for a
contact between P and the cube: P has a contact with the cube iff
at least one vertex of P touches one of the six faces of the cube. (10 points)
- Checking for all vertices with all the six faces at each time
instance is time consuming (
at every time step). We want to make use of coherence
between successive instances. Let
be a vertex of the
polytope. Let
be a set of all neighboring
vertices of
(assume that i > k). That is
is an edge of P.
Let
. Show that if

is the closest point to x = 1 face of the cube. It is possible that
some other vertex of P has the same distance from x = 1 face, but is not
closer than
. (10 points)
- Let
be one of the vertex of P closest to the x = 1 face at
time instance
. There can be at most three such vertices of P, each one
being closest to x = 1 face. Make use of the property in the part (b)
of this question to compute the closest vertice(s) at time instant
.
Assuming that the polytope undergoes very little motion between
the two successive time instances, what is the expected running time of your algorithm. (10 points)
- Come up with a collision detection (or contact determination)
algorithm based on the properties listed above. What is the expected complexity
of your algorithm at each instance? Try to account for all possible
types of contacts (vertices, edges and faces). How will you handle the
problems arising due to floating point computation? Explain the data structures
of your algorithm and write the pseudo-code. You will be
implementing it as part of your course project. (20 points).
Next: About this document
Dinesh Manocha
Wed Feb 25 01:04:57 EST 1998