UFDC Home  Search all Groups  UF Institutional Repository  UF Institutional Repository  UF Theses & Dissertations  Vendor Digitized Files   Help 
Material Information
Subjects
Notes
Record Information

Full Text 
A METHOD FOR DETECTING AND DETERMINING INTERSECTIONS OF GEOMETRIC OBJECTS BY PAUL JEFFREY LEWICKI A DISSERTATION PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY UNIVERSITY OF FLORIDA 1991 TABLE OF CONTENTS A B ST R A C T ............................................................................................... iv CHAPTERS 1 PROBLEM STATEMENT ........................................................ 1 2 CURRENT APPROACHES TO THE PROBLEM .................... 3 3 SCOPE OF THIS WORK .......................................................... 8 4 OBJECT REPRESENTATIONS ......................................... 10 Background Theory .................................................................. 10 Mathematical Representation of an Object ................................. 13 5 OBJECT INTERSECTIONS ...................................... ......... 16 Requirements for Intersection ..................................... ......... 16 The Form of the Solution ..................................................... 17 6 DETECTING INTERSECTIONS .............................................. 18 A Sim ple Case .................................................. .................... 20 Underconstrained System s ....................................................... .... 23 Checking for Intersection ...................................................... 27 Embedded Problems and Overconstrained Problems ................... 30 7 DETERMINING INTERSECTIONS ....................................... 32 Another Look at the New System ........................................... 32 Solvable Equation SubSets ....................................... .......... 32 Elimination of NonExtreme Points ......................................... 36 Object Facial Structure List Construction ................................. 37 Transformation to Coordinate Space ........................................ 39 8 IMPLEMENTATION ........................................................... 40 Programming Environment ....................................... ........... 40 The Programs ....................................................................... 40 Com putational Cost ................................................................ .... 42 9 CONCLUDING REMARKS ....................................... .......... 47 Sum m ary ...................................................... ........................ 47 Suggestions for Further Work ..................................... ......... 47 REFERENCES ......................................................... ........................... 49 BIOGRAPHICAL SKETCH ................................................................. 50 Abstract of Dissertation Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy A METHOD FOR DETECTING AND DETERMINING INTERSECTIONS OF GEOMETRIC OBJECTS BY PAUL JEFFREY LEWICKI December, 1991 Chairman: Gary K. Matthew Major Department: Mechanical Engineering A method for detecting the intersection of convex objects in two and threedimensional space which have a finite number of extreme points is presented. The method is based on a definition of an object that is drawn from the theory of convex sets. Using this definition, the conditions of intersection are expressed as a set of linear equations and a set of inequalities. From this set of equations a new set of equations is produced which allows for the existence of an intersection to be detected. The method is extended to determine the object of intersection. The result of the determination is a list of the extreme points and lists describing the facial structure of the object of intersection. CHAPTER 1 PROBLEM STATEMENT This work will deal with geometric objects and their intersections. The term geometric object refers to a set of points in some space. Examples of geometric objects are the points on a line segment, the points enclosed by a triangle, or the points enclosed by the sides of a tetrahedron. Each of these geometric objects is a closed region of space. While the number of points within the object can be infinite, the objects themselves are of finite extent. For example, a line has infinite extent, but a line segment, while consisting of an infinite number of points, is of limited extent. Geometric objects have a boundary and an interior. All of the points that lie in the interior and all of the points that lie on the boundary are considered to be elements of the object. So that, when we refer to a square in a plane, we mean the points enclosed by the lines that connect the four vertices, as well as the lines themselves (and, indeed, the vertices themselves). Geometric objects can be classified as convex or non convex. If every element of a line drawn between any two points in the object is a member of the object, then it is convex. If such a line has any points which are not members of the object then the object is nonconvex. The intersection of two objects is defined as the set of points which are members of both of the objects. In some situations the boundaries of two objects will have common points. But in other situations, one object may lie completely 2 inside the other. This will be referred to as inclusion. Both the situation where the boundaries intersect and when we have inclusion are considered to be intersections. In certain applications, one of the fundamental operations is to determine if two geometric objects intersect one another. This is the detection problem. Some such applications are determining the visibility of objects in computer graphics, determining collisions in robot path planning, and checking clearances in mechanical assemblies. This can be stated as a predicate "does object A intersect object B?" The result of this operation is a true or false value. The focus of this research is whether by treating geometric objects as entities in themselves, this predicate can be solved directly using algebraic means. Another problem is to determine the actual object of intersection. Applications which would require the solution of this problem are constructive solid geometry and tool path planning. The result of this operation is a definition of the object of intersection. CHAPTER 2 CURRENT APPROACHES TO THE PROBLEM There have been many investigations of this problem, taking several different approaches. These approaches have used various definitions of an object, and various methods of detecting and determining intersections. Some of the methods are applicable only to twodimensional problems, while others apply to threedimensional problems as well. Some investigators look only at stationary objects while others also look at moving objects. Boyse [1] looks at the problem from the application of mechanical assembly and manufacturing. His approach defines solids in terms of boundary surfaces or faces, which are in turn defined by their perimeters, which are in turn defined by a set of edges, which are in turn defined by a pair of vertices. This hierarchy builds up solid objects from simpler objects. Testing for intersections is done by testing all face/edge pairs of the two objects, and further testing for inclusion of one object inside another. He also looks for collisions between a stationary object and a moving object. The moving object sweeps out a space curve or a surface which he then checks for intersection with the faces or edges of the stationary object. Chazelle and Dobkin [2] present algorithms for detecting and finding intersections in two and three dimensions. For the twodimensional case, polygons are represented as arrays with the vertices given in clockwise order, lines 4 by a pair of points. They start with an algorithm for the intersection of a line with a convex polygon (Algorithm IGL). Consider two points, x and v, and a line in a plane. They define a function h(x,L,v) as the orthogonal distance from the point x to the line L, with respect to the point v, that is h(x,L,v) is positive if x and v are on the same side of L and negative if they are on opposite sides of L. They use a Fibonacci search to find the vertex of the polygon that has the minimum h(x,L,pl), where pi is the first vertex in the array. If this distance is zero or negative then the line intersects the polygon. They state that the extension to the case in which L is a line segment "does not increase the time bound" [2, p. 4] of the solution, but they do not give details of the solution. They then present an algorithm for detecting the intersection of two convex polygons. They state: "If we could determine the side of P closest to Q (and vice versa), we would be able to reduce the problem to a small number of tests of segment intersections. Our method reduces the number of remaining edges of one of the polygons by a factor of 2 at each iteration" [2, p. 4]. The algorithm (IGG) they present contains several inclusion tests, both of a point within a polygon and of a point within a line segment. The algorithm also contains a Fibonacci search of a set of oriented angles. This reduces each polygon to a contiguous polygonal line. Then a recursive function is called which for each call reduces the size of the polygonal lines until either an intersection is found or excluded. They use a special representation for three dimensional objects. Each polyhedron is represented as a set of parallel convex polygonsdetermined during a preprocessing step. These polygons, called preprocessing polygons, consist of a crosssection of the polyhedron for each vertex. Each crosssection is the 5 intersection of the polyhedron with a plane parallel to the xyplane passing through the vertex. This reduces a polyhedron P of p vertices to a set of p (or fewer) convex polygons P, ...,Pp and p1 convex drums. A convex drum is a polyhedron with all of its vertices lying on two parallel faces. Using this representation they then present algorithms for the intersection of a polyhedron and a plane, the intersection of a polyhedron and a polygon, and the intersection of two polyhedra. Shamos and Hoey [3] present algorithms for determining whether any two line segments out of a number of line segments in a plane intersect. Their algorithm involves a planesweeping method, that is, the plane is swept by a line and the order in which the endpoints of the line segments are encountered is used to determine whether they intersect. Nievergelt and Preparata [4] also present a set of planesweep algorithms for finding intersections of line segments and polygons. Muller and Preparata [5] present an algorithm that given two convex polyhedra (i) tests whether their intersection is empty, and (ii) if so finds a separating plane, while (iii) if not finds a point in the intersection and explicitly constructs their intersection polygon. Their method of finding the intersection of the two polyhedra is to find the projections of each of them on a plane, which will form two polygons, and then to use Shamos and Hoey's algorithm to determine if the two polygons intersect. If the two do not intersect then the two polyhedrons do not intersect. If the two polygons do intersect, they then determine the line segments in the polyhedrons that project into the intersection of the two 6 polygons. If these two line segments intersect then they have determined an intersection point, but if not they project the nearsides of the two polyhedrons onto the xyplane to obtain two planar straightlinegraphs. They then use a searching technique to examine the planar graph to find faces of the polyhedron that intersect. Dobkin and Kirkpatrick [6] extend the previous work of Chazelle and Dobkin. In their methods convex polygons and polyhedra are defined through a hierarchy of descriptions each refining previous definitions. They start with coarse descriptions of objects and as they progress through the steps of their algorithm finer descriptions of smaller portions of the objects are given. The algorithm focuses on those portions of the objects which are relevant to possible intersection. Ganter and Uicker [7] present a method of detecting the collision of moving objects. Objects are represented using solid modeling techniques. Static intersections are detected by using constructive solid geometry techniques to find the volume of intersection. Dynamic intersections are detected by forming a new object which is the volume that one of the objects would sweep out as it moves relative to a reference object. The collision is detected if there is a static intersection between the new object and the reference object. LozanoPerez [8] presents a method of planning a path without collisions using a configuration space method. In the configuration space method a moving object with a fixed orientation is reduced to a point while at the same time the obstacles are expanded in such a manner that if the point does not intersect the 7 expanded obstacles then the original object would not either. In this way the intersection of two objects is reduced to determining if a single point is inside of an obstacle. CHAPTER 3 SCOPE OF THIS WORK This work will not attempt to solve all types of intersections, but rather will address only certain types of objects and certain types of intersection between them. The objects to be considered are one, two, and three dimensional. The one dimensional case is academic, while the two and three dimensional cases are for practical consideration. A single method which can handle all three dimensions will be developed, which will require a method of representing objects that is uniform across all dimensions. Only convex objects with a finite number of vertices will be considered. This class of objects includes the polygons in two dimensions and the polyhedrons in three dimensions. Not included are objects such as a circular disk or a segment of sphere which are convex but do not have a finite number of vertices. The number of vertices, however, is not limited except by practical considerations such as storage and computation time. Therefore the method will work for an approximation to a circular disk, but the better the approximation, the greater the cost. The method will only consider static objects. No attempt will be made to consider objects that change relative positions over time. A single method that is applicable for one, two, and three dimensions has been developed. The method detects the intersection between two objects of the same dimension. If the intersection of more than two objects is desired, then the 9 method can be applied to two of the given objects and the method then applied to the resulting object of intersection and another of the given objects. In this way the intersection of a group can be determined. An extension of the method allows the determination of the object of intersection. CHAPTER 4 OBJECT REPRESENTATIONS Solid objects are sets of points, that is they are subsets of the space in which they exist. Convex objects are convex sets of points. In order to work with convex objects and perform the operations of detecting and determining the intersections between them, it is desired to have a mathematical definition of a convex object. The definition that I have chosen to use is drawn from the theory of convex sets. Background Theory This section will summarize the theory of convex sets as presented in Brondsted [9]. Affine Combinations A subset A of Rd is an affine subspace if, and only if, the following holds: Alxz + A2X2 is in A for all Xzl,XEA and all A1,A2ER with A1 + A2 = 1. An affine combination of points xl,... ,xn from Rd is a linear combination AXlz + + Azn, where A1 + + An = 1. We shall write n i=1 to indicate that the linear combination A1Xl + + Anan is in fact an affine combination. The intersection of any family of affine subspaces of Rd is again an 11 affine subspace of R d. For any subset M of R d, the affine hull aff M is the set of all affine combinations of points from M. An nfamily (xl, xn) of points from Rd is said to be affinely independent if a linear combination AXlz + + A,,,, with A) + + An = 0 can only have the value 0 when A1 = = An = 0. An affine basis of an affine space A is an affinely independent nfamily (xj, ) of points from A such that A = aff{xz, ., x,,}. The dimension dim A of a nonempty affine space A is the dimension of the linear subspace L such that A = x + L. An affinely independent nfamily of points from A is an affine basis of A if and only if n = dim A + 1. For any subset M of Rd, there exists an affinely independent family (xl, ) of points from M such that aff M is the set of all affine combinations n SaAi i=1 of xi, ,. This statement shows that to generate aff M it suffices to take all affine combinations of the fixed points l, x, from M. Further, each point in aff M has a unique representation as an affine combination of x1, x. Convex Combinations A subset C of Rd is called a convex set if Alx1 + A2X2 belongs to C for all xI,x2ER with A1 + A2 = 1 and Ai,A2 > 0. When x, and x2 are distinct points from R d, then the set 12 [zl,2] := {A1Xl + A2x2 IAi,A2 > O,A1 + A2=1} = {(1A)xI + Ax2 I A[0,1]} is called the closed segment between xl and x2. With this notation, a set C is convex if, and only if, the closed segment between any two points of C is contained in C. By a convex combination of points x1, xn from Rd we mean a linear combination Alzx + + Anxn, where A1 + ' + An = 1 and A1, A,, An > 0. Every convex combination is also an affine combination. We shall write i=1 to indicate that the linear combination A1 x1 + + AnX, is in fact a convex combination. A subset C of Rd is convex if and only if any convex combination of points from C is again in C. The intersection of any family of convex sets in Rd is again convex. For any subset M of R d, the convex hull cony M is the set of all convex combinations n 'il i=1 such that (x1, .. xn) is an affinely independent family of points from M. In other words, in order to generate cony M we need not take all convex combinations of points from M, it suffices to take those formed by the affinely independent families of points from M. On the other hand, no fixed family of points from M will suffice. For any subset M of Rd with dim(aff M) = n, the convex hull cony M is the set of all convex combinations of precisely n + 1 points from M. By a convex polytope, or simply a polytope, we mean a set which is the 13 convex hull of a nonempty finite set {Xi,... ,m}. A polytope S with the property that there exists an affinely independent family (xl, ,n) such that S = conv{x1,... ,xn} is called a simplex and the points x, ... x are called the vertices of S. If xz,... x, are the vertices of a simplex S, then by the affine independence each point in aff{xz,...,xn} has a unique representation as an affine combination of x1, ,n, in particular, each point in conv{x1, ,n} has a unique representation as a convex combination of x1, x,. Simplices are the only polytopes having a "convex basis" as described above. Facial Structure of a Convex Set Let C be a closed convex set in R d. A convex subset F of C is called a face of C if for any two distinct points y,zE C such that ]y,z[ n F is nonempty, we actually have [y,z] C F. A point xEC is called an extreme point of C if {x} is a face. A face F of C is called a kface if dim F = k. Thus, the 0faces are the extreme points. A facet of C is a face F with 0 < dim F = dim C 1. The intersection of any set of faces of C is again a face of C. For example, consider a three dimensional cube as shown in Figure 1. The 2faces or facets of the cube are the sides, the 1faces are the edges, and the 0 faces are the corners. The intersection of any two facets is a 1face. The intersection of any two 1faces is a 0face. Mathematical Representation of an Object Using the definition of a convex set as given by Brondsted, an object is defined as the set of points that satisfy the following requirements: Figure 1. Facial Structure of a Cube AiP1 + A2P2+ 2 + nPn = X, A1 + A2 + + A, = 1, Ai,A2, ,A3>0. This definition provides a relationship between points in the xyzspace where the object exists, which will be referred to as the coordinate space, and points in the Aspace, which will be referred to as the parameter space. The first equation expresses any point X as a linear combination of the set of points {Pi} which are the extreme points or vertices of the object. This is therefore a vector equation and represents either one, two, or three scalar equations depending on the dimension of the coordinate space. By requiring that the values of the A's also satisfy the second and third equations the point X must lie in the convex combination of the extreme points. Each set of n A's (a point in the n dimensional parameter space) which satisfy the second and third equation define a point in the coordinate space. Unless the number of extreme points in the  0face, extreme point, or vertex  1face or edge 2face or facet 15 object is less than or equal to d+1, where d is the dimension of the coordinate space, a given point in coordinate space may have more than one set of A's that satisfy all of the stated conditions. This definition is sufficient to define a convex object but additional information is needed to efficiently solve for the object of intersection. This additional information has the following form: 1. Edges: a list of the pairs of points which form the edges of the object. 2. Faces: a list of the triples of points which tile the boundary of the object with nonoverlapping triangles. 3. Composite Faces: a list of which of the faces belong to coplanar surfaces. 4. Volumes: a list of the quartets of points which divide the object into non overlapping tetrahedrons. These lists are not all needed for objects of all dimensions. The number of faces, composite faces, and volumes of a onedimensional object are all zero. For a twodimensional object the number of volumes is zero and the number of composite faces is one. For this work it is assumed that we start with a pair of correctly formed objects. In a correctly formed object the list of points contains only the extreme points of the convex object, and the lists describing the facial structure of the object are all correct. CHAPTER 5 OBJECT INTERSECTIONS Requirements for Intersection The intersection of two objects A and B is the set of points X, such that X is a member of both A and B. Therefore any point X in the intersection must simultaneously satisfy the defining relations of both objects. Setting the two vector equations for X equal to each other produces a new vector equation: AA1A + + AnAn = An+IBi + + An+mBm, where A and B are the extreme points from object A and B respectively. In addition there are the two A equations : A1 + A2 + ** + An = 1, An+1 + An+2 + + An+m = 1, and the set of inequalities: A1,A2i n+m > 0. This is a set of equations and inequalities only in terms of the A's. Working with the problem in parameter space rather than coordinate space simplifies the solution. The solution to this set of relations is the set of values of the A's which satisfy all of the constraints. The relations can be divided into two groups: a system of linear equations, and the set of inequalities. For most intersection 17 problems the set of linear equations will be underconstrained, that is, there will be more unknowns than equations. This says that there is an infinite number of solutions to the system of equations. Of course, this is to be expected since the object of intersection will usually contain an infinite number of points. However, not all solutions to the system of equations will be a point in the intersection of the two objects. The solutions which form the intersection are those that also satisfy the additional constraints imposed by the set of inequalities. The Form of the Solution We are considering two separate tasks: 1. detecting if the intersection is nonempty, that is, detecting if the solution to the system of equations contains any points which also satisfy the set of inequalities, 2. determining the object of intersection. The result of task 1 is a true or false indication of whether an object of intersection exists. The result of task 2 is a definition of the object of intersection, in the form of the given objects. This will require finding the limiting values of the A's that define points in the solution set. These limiting values will correspond to the extreme points of the object of intersection in the xyzspace. CHAPTER 6 DETECTING INTERSECTION The first task to be dealt with is detecting whether an intersection exists. The method used depends on looking at the equations from the mathematical statement of the intersection as representations of geometrical objects. A simple case of using this interpretation in the solution of a system of equations is used to illustrate the concepts involved, leading to a criterion for intersection detection. Then the method is extended to the problem of underconstrained systems of equations such as are produced by the intersection of objects. The criterion for intersection is then developed for the underconstrained system. The chapter will end with a discussion of special cases, why they occur and how they can be handled. The method of detecting intersections is based on a geometrical rather than algebraic interpretation of the equations and inequalities that are given in the statement of intersection. An equation can be thought of as a representation of a hyperplane. A hyperplane is an (n1)dimensional object in an ndimensional space. For example, in a twodimensional space the hyperplanes are lines, in a threedimensional space the hyperplanes are planes. In a fourdimensional space the hyperplanes would be objects of three dimensions. In solving a system of equations we seek a set of points that satisfy all of the equations. But we can think of this in terms of the hyperplanes that the equations represent. Then the 19 solution is the set of points which is common to all of the hyperplanes; that is, their intersection. Now at this point it might seem that we are back where we started from looking for the intersections of objects. But there is a difference. The objects that we started with were limited; for instance, a portion of a plane, while the hyperplanes we are now dealing with are unlimited. So far we have dealt with the equations in our problem. How do we deal with the inequalities? The inequalities, together with the two A equations which require that the sum of the parameter values for each object be equal to one, impose the constraint that the acceptable points of intersection must have parameter values that fall in the range between zero and one, inclusive. In terms of the geometric interpretation of the problem this is a requirement that the object of intersection lie inside of an ndimensional unit cube. The three Figure 2. The ThreeDimensional Critical Region dimensional critical region is shown in Figure 2. This ndimensional unit cube (1, 1, 1) 1 (0, 0, 20 will be referred to as the critical region. If the intersection of the hyperplanes passes through the critical region then there are points common to both objects. If the intersection of the hyperplanes does not pass through the critical region the there are no points common to both objects. A Simple Case Looking at these concepts in terms of a simple set of constrained equations will illustrate how interpreting the equations as a representation of geometry leads to a criterion for detecting intersections. Consider a constrained system of equations, say, three equations in three unknowns. ailx + a12X2 + aC133 = 1 O21X1 + O22X2 + a23X3 = 02 a31X1 + a32x2 + a33X3 = /03 If we assume that the coefficient matrix [a] has rank three then we know that the system of equations has a single solution. If we approach the solution from the point of view of linear algebra then we think of transforming the matrix [a] into a new matrix [a'], such that the new matrix is diagonal. The new system can be written as lia2a3 X1 + Ox2 + Ox3 = P2a3l Ox1 + kla2a 31x2 + OX3 = 1la31 Ox1 + Ox2 + Ila2a31x3 = lD)a where each of the terms of the form 1ia2la3 is defined as ka1&2a31 = 21 ll 12 13 Q21 a22 a23 331 32 a33 The new system of equations leads directly to the solution set of the original system of equations. If we now think in terms of hyperplanes rather than equations, how do we describe the process of solving the system of equations? Each of the three equations in the original system represents a hyperplane in the threedimensional Figure 3. Three General Hyperplanes space. A possible example is shown in Figure 3. Likewise, each of the three equations in the new system represents a hyperplane. The new hyperplanes are obtained by forming linear combinations of the original hyperplanes. As long as we replace a hyperplane with one obtained by taking a linear combination of hyperplanes in the set, then we will have a new set that has the same intersection. first hyperplane ' second hyperplane third hyperplane 22 Why is the new set of hyperplanes considered to be a solution whereas the original set is not? In both cases the intersection of the three hyperplanes is the solution set of the system of equations. But in the second case, the hyperplanes have a particular relationship with the coordinate axes and with each other. The hyperplane of the form calzl + OX2 + Ox3 = 31 is perpendicular to the xz axis and parallel to the x2 and x3 axes. Likewise, each of the other equations is perpendicular to one axis and parallel to the other two. This means that the three hyperplanes are also perpendicular to each other as Figure 4. Three Solution Hyperplanes shown in Figure 4. So solving a system of equations can be interpreted as finding a new set of hyperplanes that have the same intersection as the original set, but are also perpendicular to each other. If the problem that we are trying to solve is first hyperplane third hyperplane second hyperplane 23 the intersection of objects, then we have the additional constraint that we are only interested in solutions to the system of equations that lie inside the critical region. The critical region in this threedimensional example is an unit cube with one corner at the origin and three of its edges lying along the three parameter axes. A solution to the system of equations is valid if, and only if, it lies inside the cube. Because the hyperplanes of the new system of equations are parallel to pairs of parameter axes, and therefore faces of the critical region cube, the solution lies inside the cube if, and only if, all of the hyperplanes in the new system pass through the critical region. This observation forms the basis of a criterion for intersection detection (assuming a constrained system of equations): two objects intersect if, and only if, the new system of hyperplanes formed such that all members are parallel to the facets of the critical region has the property that all hyperplanes pass through the critical region. Underconstrained Systems The criterion for intersection just stated will now be extended to underconstrained systems of equations. When a system of equations is underconstrained it is not possible to produce a new system that has each hyperplane parallel to a facet of the critical region. Instead we must settle for the hyperplanes being parallel to the edges of the facets. If there are p hyperplanes then we can find a new hyperplane which will be parallel to p1 coordinate axes. That is each new hyperplane will be parallel to a (p 1)face of the critical region. For example, if we have two equations in three unknowns then n=3, p=2, and 24 each new equation will have 1 zero coefficient and 2 nonzero coefficients. In terms of hyperplanes this means that the new hyperplanes will be parallel to the 1faces of the cube rather than the facets. If we attempt to solve an underconstrained system of equations in the same manner that we use for a constrained system we will find that it is impossible to form equations that have a single nonzero coefficient. Each new equation can be guaranteed to have at least p1 zero coefficients, where the number of equations is p, out of a possible set of n coefficients. We must check every possible combination of p1 zero coefficients out of the possible n coefficients. The number of new equations is ( n)1 As an example, consider the intersection of two line segments of a one dimensional space. The equations of intersection are A P1 + A2P2 A3P3 A4P4 = 0 A1 + A2 = 1 A3 + A4 = 1 AI,A2,A3,A4 > 0. In this instance, we have three equations in four unknowns. Let a system of equation of this type be represented as alA1 + blj2 + c1A3 + d1A4 = el a2A1 + b2A2 + c2A3 + d2A4 = e2 a3A, + b3A2 + c3A3 + d3A4 = e3 With three equations we can eliminate two coefficients from each of the new equations. Since there are four coefficients, the number of new equations is S4) = 6. The set of new equations is 25 OX1 + OA2 + IcabX3 + +dab4 = leabl OX1 + IacX2 + OX3 + Idac = leac OA ad + d2 d ca3 + OX4 = lead1 abcli + OX2 + OX3 + IdbcI4 = lebcl abd6li + OAX + JcbdIA3 + OX4 = ebd6l lacdlXl + bcd42 + OA3 + OX4 = lecd The form of each coefficient follows a set pattern. The first letter is the column of the coefficient. The remaining letters are the columns of the zero terms for that equation. This might be called a generalization of Cramer's rule to underconstrained systems. We now state the criterion of intersection for underconstrained systems. Given a set of (n 1 equations, each of which represents a hyperplane parallel to p1 axes, the common object of intersection passes through the critical region if, and only if, all of the hyperplanes represented by these equations pass through the critical region. This needs to be proved. If the object of intersection passes through the critical region then each of the hyperplanes must also, since each must contain the object of intersection. We need to prove that if the object of intersection does not pass through the critical region, then there must be at least one hyperplane which also does not pass through the critical region. The intersection of any p hyperplanes represented by p independent equations from the set is the object of intersection in A space. The dimension of 26 the object of intersection will be np. Assume that the object of intersection does not pass through the critical region. Each of the hyperplanes in the set must contain the object of intersection. Recall that each hyperplane in the set is parallel to p1 axes. Since each hyperplane is parallel to p1 axes, then there are p1 coordinates which can change arbitrarily. Therefore a point in the plane can always be chosen such that p1 of its coordinates are in the range zero to one. But the other np+1 coordinates must be such that the point lies in the object of intersection. Therefore, we must show that every point on the object of intersection is out of range for at least one of the np+1 coordinates if the hyperplane is to miss the critical region. Let A be the object of intersection. A is an (n p)dimensional object in an ndimensional space. Let Ai be the set of points in A with its ith coordinate in range. Each of the Ai is a convex set. If we are to construct a hyperplane that does not pass through the critical region, then we need np+1 of these whose intersection is empty. We know that all n such spaces have an intersection that is empty since the object of intersection is assumed to miss the critical region. We have n convex sets in (np)space. We want to show that if the intersection of all n is empty then there exists np +1 convex sets whose intersection is empty. Helly's Theorem states that given a collection of convex sets in dspace, if any d+1 convex sets have an intersection that is nonempty, then all have an intersection that is nonempty [9, p.69]. Taking the reverse of Helly's theorem, if a collection of convex sets in dspace has an empty intersection, then there exists one choice of d+1 of the convex sets which must have an empty intersection. 27 The object of intersection is a space with dimension d = np. Since we know that all n convex sets, Ai, must have an empty intersection, then it must be true that d+1 = np+1 of the convex sets have an empty intersection. Since there is no point that has all of its coordinates in range the hyperplane must not pass through the critical region. So, we need to check all of the hyperplanes which are parallel to the np +1 dimensional edges of the ndimensional hypercube. Unfortunately there are n that is n of these hyperplanes. Each of these 1 (pl)!(np+l)! hyperplanes will have p1 terms which are equal to zero and np+l nonzero terms. Checking for Intersection The criterion developed depends on whether the hyperplanes pass through the critical region. A test for this condition will now be developed. Consider a threedimensional parameter space. Here the critical region is a cube and the hyperplanes are planes. Assume that a given hyperplane is positioned so that it touches the critical region only in the point (1, 1, 1) as shown in Figure 5. The plane will be represented by an equation of the form aX1 + bA2 + cA3 = d. For our purposes we need to put the equation into a normalized form such that the coefficients a, b, c form a set of direction cosines and the sign of the right hand side is positive. The equation can now be written as Figure 5. Plane Touching the Critical Region aA1 + /A2 + 7A3 = p. In this form the coefficients of the A's are the coefficients of the normal vector to the plane and p is the distance of the plane from the origin. If the plane touches the critical region at the point (1,1,1), this point must satisfy the equation. Substituting a value of one for each of the A parameters yields a+ + = p. This simple expression defines the condition that a plane just touch the critical region. If for a given plane the distance of the plane from the origin is less than the sum of the direction cosines of its normal vector then the plane intersects the critical region, else the plane does not intersect the critical region. However, this statement assumes that the plane will touch the critical region first at the point (1,1,1). In terms of the direction cosines this is the condition that all of them are positive. The test can be made completely general ' normal vector A 1 29 by choosing a new origin which is symmetrically located with respect to the corners of the critical region. The new origin will be at the point (0.5,0.5,0.5). The new coordinate system will then be scaled so that the cube has sides of length 2. In the new coordinate system all of the corners are located at a distance of v3 from the origin. The equation describing this transformation is A; = (Ai 0.5)2 = 2A, 1 and the inverse transformation is A (A< + 1) 2 Applying this transformation to the equation of a plane yields alA1 + a + a 33 + = b al(A + 1) a2(A2 + 1) a3(A + 1) + + =b 2 2 2 al(A + 1) + a2(A5 + 1) + a3(A3 + 1) = 2b alAi + a2A2 + a3Aj = 2b (al + a2 + a3). This equation is then normalized so that the right hand side is positive. Since the critical region is symmetrical about the origin the equation can be converted to a first quadrant problem by taking the absolute value of each coefficient. Then the equation is evaluated to determine if the sum of the absolute values of the coefficients is less than the absolute value of the right hand side. 30 Embedded Problems and Overconstrained Problems The method outlined above will solve the detection problem in general; however, there are certain special cases that require additional attention. These special cases can be divided into two groups: embedded problems and overconstrained problems. Embedded problems are those problems for which the initial matrix of coefficients of the equations of intersection has a determinant of zero. This will occur when a lowerdimensional problem is embedded in a higherdimensional space. For example, consider the intersection of two line segments in a plane as Figure 6. TwoDimensional Embedded Problem shown in Figure 6. If the two line segments are colinear, then this is really a one dimensional problem, not a twodimensional problem. This problem can be solved by reducing the dimension of the problem by examining the columns of the Y / P4 P2 P3 P1/ > X 31 matrix to find which are dependent and eliminating one column from the matrix of coefficients. Then the problem can be treated as a onedimensional problem. The second group of special cases are the overconstrained problems. An example of an overconstrained problem would be the intersection of two line segments in three space. There are four vertices but five equations, therefore the system is overconstrained. In three space two line segments can only intersect if they are coplanar. That is if there is an intersection then the problem must be an embedded problem. So, an overconstrained problem can only lead to an intersection if the rank of the matrix of coefficients and the rank of the augmented matrix of coefficients are equal and less than or equal to the number of unknowns. The rank of these two matrices can be determined by Gauss elimination. If the rank of the two matrices are equal to the number of unknowns then the single point of intersection can be determined by back substitution, and then checked to see if it lies within the critical region. If the rank of the two matrices are less than the number of unknowns then the problem is actually underconstrained and the reduced matrix produced by the Gauss elimination procedure can be used as a starting point for the method described above for intersection detection. CHAPTER 7 DETERMINING INTERSECTIONS Another Look at the New System In detecting the occurrence of an intersection a new system of equations was produced. Each of the equations in this system has p1 zero coefficients. However, in each equation the set of zero coefficients is different. The original set of p equations was linearly independent. Any p of the new equations will also be linearly independent, but any more than p must be linearly dependent. Choosing any p equations from the new set must define the object of intersection. But because the original system of equations was underconstrained any p equations will also be underconstrained. By choosing certain equations to form a set, and then setting the values of certain parameters it is possible to reduce the set to a solvable system of equations. The solution of a solvable system will be a vertex of the object of intersection. To find the object of intersection using this method it is required that we solve all sets of equations with a common set of n p parameters. Solvable Equation SubSets The original system of p equations had n unknowns. From this system we produced a new system for which each equation has p1 zero coefficients and in general the remaining np+1 coefficients are nonzero. We need to choose p of the equations to form a set. Recalling the solution of the constrained system of 32 33 equations, we would like to have equations which have only a single nonzero coefficient. But each of our equations has np too many nonzero coefficients. Choose any set of np parameters, say A1 ,A, ... A,_p. Select from the new system of equations all of the equations which have all of the np parameters as nonzero coefficients. Each of these equations contains one other nonzero coefficient, and because they all contain p1 different zero terms, each of these equations must contain one other different nonzero coefficient. This set of p equations in n unknowns gives us n p free choices. Let the free choices be to set the np parameters which have the common nonzero coefficients to be equal to zero. Disregarding all terms which either have a zero coefficient or a zero parameter we now have p equations in p unknowns. Furthermore, each equation has only a single parameter with a nonzero coefficient. This set then leads directly to a point which is an element of the object of intersection. As an example consider the onedimensional case that we looked at in the last chapter. The new system of equations was OA0 + OA2 + IcabN3 + dabN4 = leabl OA1 + Ibac42 + OA3 + dacI4 = leac OA1 + lbad42 + Icad3 + 0A4 = lead abc4\ + 1 + 0A2 + A3 + bc4 = lebcl jabd4l + OA2 + Icbd 3s + OA4 = lebdl kacd4l + cdA2k + OX3 + OA4 = Iecd By examining each column of the set of equations it can be seen that each column has three nonzero terms, which is equal to the number of original equations. We select a set of three equations, each of which have the same nonzero coefficient, such as the last three equations in the set. These form a set of three equations in 34 four unknowns. So, we have one free choice to make in the solution of the system of equations. Let A) be equal to zero. We can ignore the first column from the set of equations. What remains is now three equations in three unknowns, and furthermore, each equation contains only a single nonzero coefficient. To find the parameters of a point in the intersection all that remains to be done is to divide the right hand side of each of the three equations by the single coefficient. The values of the parameters would then be checked to see if they fall within the range zero to one. If they do then the point is a vertex of the object of intersection, if they do not then the point is discarded. This would be repeated for each the parameters. The choice of setting all of the n p parameters to zero may seem arbitrary, but it does have a geometrical basis. Consider the mathematical definition of an object given in chapter four. Each object is defined as the convex combination of its extreme points. The value of each parameter is the contribution of its vertex to the position of a point. If any parameter is zero, then its vertex does not contribute, and the point must lie in the convex combination of the remaining vertices. As an example consider a triangle. If one of the parameters is zero, then the point must lie on the opposite side. So, choosing zero for the free parameter choices has the effect of causing the resulting point to lie on the edges of the objects. Considering the geometric interpretation of the terms allows further insight into the solution. The process will always result in a number of nonzero terms that depends only on the dimension of the problem. In a onedimensional 35 problem the number of nonzero terms is always three. The number of parameters can at most be equal to four, because each one corresponds to one of the four points which define the two segments of the onedimensional space. Therefore, taking three points, one of the points must be from one segment and the other two points from the other segment. Since the sum of the parameter values for any object must be equal to one, the value of the single parameter must be equal to one, and the sum of the two parameters must be equal to one. In addition, the parameters from the two different objects must indicate the same point. So the solution must indicate the parameters of the point that corresponds to the single parameter in terms of the basis defined by the pair of points from the second object. In a twodimensional problem the number of nonzero terms is always four. If one parameter is from the first object and three from the second object, then the solution indicates the parameters of the point from the first object in terms of the basis of three points from the second object. If two parameters are from the first object and two from the second object, then the solution indicates the parameters of the point of intersection of the two line segments that connect the pairs of points from each object. In a three dimensional problem the number of nonzero terms is always five. If one parameter is from the first object and four from the second object, then the solution indicates the parameters of the point from the first object in terms of the basis of four points from the second object. If two parameters are from the first object and three from the second object, then the solution indicates the parameters of the point where the line through the two points intersects the plane 36 through the three points in terms of the basis of three points and in terms of the basis of two points. Elimination of NonExtreme Points If we evaluate every set of equations that have a common set of n p non zero parameters we are guaranteed to find all of the extreme points of the object of intersection. This process will also find other points which are members of the object of intersection but are not extreme points if one or both of the objects extreme points  extreme points nonextreme points Figure 7. Intersection Containing NonExtreme Points contain more than d+1 points. Consider a square as shown in Figure 7. If the edges are considered to be every combination of two points then there are six edges. Four edges form the boundary of the square and two edges form the diagonals. When the square is intersected with another object these diagonal edges will give intersection points that are valid elements of the intersection set 37 but which are not extreme points. The object facial structure list is used to produce only those sets of np parameters that will yield extreme points. In a onedimensional problem each set of three is formed by taking one parameter from one object and two from the other. In a twodimensional problem each set of four parameters is formed by pairing each edge of one object with every edge from the other object, and then each point of one object with each face of the other object. In a threedimensional problem each set of five parameters is formed by taking each edge of each object with each face of the other object, and then each point of each object with every volume of the other object. Object Facial Structure List Construction Since an object now consists of a list of vertices and an object facial structure list, if our algorithm is to produce an object definition as its output then we must be able to construct an object facial structure list for the new object of intersection. In one dimension the list is trivial since there can only be a single edge. In two dimensions the list can be constructed if the points are listed in a cyclic order. This ordering of the points can be achieved by finding the centroid of the vertices and the vectors from the centroid to each vertex. Then choosing one vector as the reference vector, that is the vector that points in direction zero, the relative directions of all of the other vectors can be found by taking the scalar and vector products of each of them with the reference vector. Having assigned to each point an angle they may be ordered in a cyclic list. The edges can then be listed by taking each pair of points in succession. The object can be divided 38 up into nonoverlapping triangles by taking the first point in the cyclic list as a pivot along with each set of two of the other points in succession, that is 123, 134, 145, and so on. In three dimensions finding the edges and faces requires that we determine which of the new points lie on each of the composite faces of each of the old objects. Once the set of points on a composite face are known they can be treated in a manner similar to that described for the twodimensional case resulting in a list of edges and a list of faces. For each composite face all of the new faces found become a new composite face. Taking each composite face in turn a complete list of edges, faces, and composite faces can be built for the new object. The three dimensional object must also be divided into nonoverlapping volumes. This can be accomplished as follows. Find two points which are not on any common composite face. Find the normal vector of each plane formed by these two points and each of the other points in the object. If any of the normal vectors point in the same direction choose a different pair of starting points. (This method may fail in certain cases because it may not be possible to find a suitable pair of points for particular objects. A general method of dividing an object into tetrahedrons is needed but that is beyond the scope of this work.) Each of these normal vectors must be perpendicular to the line through the two points, and being free vectors may be considered to be coplanar. Choosing the first vector as a reference pointing in direction zero the vectors may be ordered in a cyclic manner by calculating the relative angels between each of them and the reference. Since the normal vectors can be ordered then the points which determine the planes can be 39 ordered. Having ordered the set of points in the object it can now be divided into tetrahedrons by taking the two points along with each pair of points from the cyclic list. Transformation to Coordinate Space The final step is to transform the points from the parameter space back into the coordinate space. The result of the solution of the sets of equations is in terms of the Aparameters. We want the points to be given in terms of the xyz coordinates. This is accomplished by multiplying the coordinates of one object by the parameters for those points produced by the solution method. The solution method gives the solution in terms of the parameters of both objects. Each set of parameters giving a single intersection point indicates the solution in terms of both objects. If the number of vertices in the first object is vl, then the first vl parameters give the position of the point of intersection as a convex combination of these vl vertices. Likewise, if the second object has v2 vertices, then the last v2 parameters give the position of the point of intersection as a convex combination of the vertices of the second object. To find the coordinates of a point of intersection choose one object and select the parameters for that object from the list of parameters. Then multiply each of the vertices by the corresponding parameter and then take the summation of each coordinate. The resulting vector is the desired point. CHAPTER 8 IMPLEMENTATION This chapter discusses an implementation of the algorithms presented. The results show the relative cost of the algorithm and show where the most improvement is needed to reduce the cost. This is not a definitive evaluation since the results depend upon the hardware and the particular rendering of the algorithms into computer code. The programs were written to show that the algorithms do work but they were not optimized for speed or storage requirements and therefore do not represent the lowest possible cost for the algorithm. Programming Environment The computer used for the program development was a 33Mhz 80386 PC compatible with a 80387 coprocessor. The operating system was Interactive Unix version 2.2. The programming language used was the C language and was compiled by the standard Unix compiler. The Programs A set of functions has been written, each of which performs a step in the solution. This section is a brief outline of the functions and the sequence in which they are called. The function form.system() takes two object data structures and creates the system of equations of intersection. The data concerning a single object was 41 stored in a C data structure as shown in Figure 8. The function assumes that the data structures are filled with data that properly define convex objects. No checking is done to see if the data are correct and the results are undefined if the typedef struct object { int d; int v; double point[20][3]; int edges; int edge[20][2]; int faces; int face[20][3]; int volms; int volm[10][4]; int comfs; int comf[10][12]; } Object; Figure 8. The Definition of the C Data Structure for an Object data are incorrect. The resulting system of equations is stored in an array and passed back to the calling program. The function newsys() takes the system of equations of intersection produced by the formsys() function and from it forms the new system of equations each of which contain the maximum number of zero coefficients. For each new equation the coefficients are calculated and the equation is checked to see if the hyperplane that it represents passes through the critical region. If any of the hyperplanes represented by one of the new equations does not pass through the critical region then newsys() returns a value of zero, indicating that the two objects do not intersect. Otherwise it returns a value of one, indicating that the two objects do intersect, and passes the coefficients of the new system of 42 equations back to the calling program in an array. This completes the detection part of the problem. If the two objects do intersect then a new object is created containing the object of intersection. The function fndvrt() is called to find the values of the parameters of the vertices of the object of intersection. The function unqvrt() is called to eliminate duplicate vertices. The function frmobj() is called to transform the parameters of the vertices into coordinates in xyzspace. Finally the function bldlst() is called to create the facial structure list for the new object. The result is an object data structure filled with the data for the object of intersection. This completes the determination part of the problem. Computational Cost The Form of the Test In order to judge the relative computational cost of the implementation of the algorithms a set of time trials was conducted. A set of pairs of objects was constructed such that each pair contained an increasing total number of vertices. In all of the pairs of objects there was an intersection so that all of the functions would be called. A program was written that called each of the functions named above in the proper order. The Unix system call times( was used to determine the cumulative cpu time used by the program. By calling the times() function before and after each of the function calls and then taking the difference, the amount of cpu time used by each function was found. Since the resolution of the times() function was onehundredth of a second, each of the functions was placed 43 within a for loop and called 100 times. The difference between the cumulative cpu time before and after the loop was then divided by 100 to get an average time needed for one execution of the function. Time trials were run separately for objects of two and threedimensions. TwoDimensional Results Table 1 shows the results of the twodimensional trials. As the table shows the two functions with the highest cost are newsys() that forms the new system Table 1. Average CPU Time cpu time in milliseconds number number of old form_sys new_sys fnd_vrt uniquevrt form.obj build list of new vertices vertices 4 0.20 3.10 0.20 0.00 0.40 0.40 1 5 0.30 10.30 2.80 0.10 0.30 0.20 2 6 0.30 26.10 14.80 0.20 0.40 1.30 4 7 0.30 55.70 43.90 0.40 0.60 1.90 6 8 0.40 102.30 118.10 0.60 0.80 2.70 8 9 0.30 177.30 273.30 1.10 1.00 3.00 9 10 0.30 283.50 705.00 1.10 1.30 3.40 10 of equations and detects whether an intersection occurs and fndvrt() that calculates the values of the parameters of the vertices of the new object of intersection. Figure 9 shows a graph of the cost of the function newsys() as a function of the total number of vertices in the two original objects. Figure 10 shows a graph of the cost of the function fndvrt() as a function of the total number of vertices in the two original objects. These two plots illustrate the rate at which the cost of the two functions increase as the size of the problem increases for a twodimensional problem. As the table and plots show the function with 1000 0 100 CPU time in msec 10 0 (log scale) 1 4 5 6 7 8 9 10 number of vertices Figure 9. Cost of Forming the New System of Equations as a Function of Number of Vertices in TwoDimensions 1000 0 100 CPU time 0 in msec 10 0 (log scale) 0 1 4 5 6 7 8 9 10 number of vertices Figure 10. Cost of Finding the New Vertices of the Object of Intersection as a Function of Number of Vertices in TwoDimensions the greatest cost is the fndvrt() function which finds the parameters for each of the vertices of the new object of intersection. Threedimensional Results Table 2 shows the results of the threedimensional trials. As in the two dimensional case the two functions that have the greatest cost are newsys() and fnd.vrt(. Figure 11 shows a graph of the cost of the function newsys() as a 45 Table 2. Average CPU Time cpu time in milliseconds number number of old form_sys newsys fndvrt unique_vrt formobj buildlist of new vertices vertices 5 0.30 15.60 0.20 0.00 0.30 0.20 1 6 0.30 67.30 4.80 0.10 0.50 0.10 2 7 0.30 208.80 30.70 0.30 0.50 0.10 3 8 0.40 502.70 184.20 0.20 0.80 0.20 4 9 0.40 1073.70 563.20 1.20 1.30 10.10 7 1000 0 100 CPU time in msec 10 0 (log scale) 1 I I I I I I I 4 5 6 7 8 9 10 number of vertices Figure 11. Cost of Forming the New System of Equations as a Function of Number of Vertices in ThreeDimensions function of the total number of vertices in the two original objects. Figure 12 shows a graph of the cost of the function fndvrt() as a function of the total number of vertices in the two original objects. These two plots illustrate the rate at which the cost of the two functions increase as the size of the problem increases for a threedimensional problem. As the table and graphs show the function with the greatest cost is the newsys() function which forms the new system of equations. 1000 0 0 100 CPU time o in msec 10 (log scale) o I ? I I J I i 4 5 6 7 8 9 10 number of vertices Figure 12. Cost of Finding the New Vertices of the Object of Intersection as a Function of Number of Vertices in ThreeDimensions These results show that the two functions newsys() and fndvrt() are the ones that need the most improvement. The current implementation is not fast enough for a real time application and is probably too slow for an interactive application. However, the current implementation does not represent the lowest cost that the application can achieve. By optimizing the computer programs used to implement the algorithm lower cost determination and detection can be achieved. CHAPTER 9 CONCLUDING REMARKS Summary A method for detecting the intersection of convex objects in two and threedimensional space which have a finite number of extreme points has been presented. The method was based on a definition of an object that was drawn from the theory of convex sets. Using this definition, the conditions of intersection were expressed as a set of linear equations and a set of inequalities. From this set of equations a new set of equations was produced which allowed for the existence of an intersection to be detected. The method was extended to determine the object of intersection. The result of the determination is a list of the extreme points and lists describing the facial structure of the object of intersection. Suggestions for Further Work There are two areas that are open for further investigation: improving the implementation to achieve faster detection and determination, and investigating the nature of the new system of equations to gain further insight into the intersection problem. A better implementation of the algorithm should be able to reduce the computational cost of the algorithm. One place where the implementation can be 48 improved is in the production of the new system of equations. In the current implementation each term is calculated by evaluating a determinant, as would be done if a system of equations was solved by Cramer's rule. A new implementation which uses a more efficient method to produce the new system of equations would reduce the cost of the algorithm. The new system of equations must contain information about the relative position and orientation of the two objects. It may be possible to extract this information in forms that are pertinent to various applications. It has been shown that intersection is detected by the intersection of the hyperplanes that are represented by the members of the new system of equations with the critical region. It is possible to determine the distance between each hyperplane and the nearest corner of the critical region. For instance, it may be possible to produce a metric that indicates the "distance" between two objects. Or, it may be possible to determine the orientation that allows an object to pass between two obstacles. The relationship between the relative positions and orientations of two objects and the associated new system of equations should be investigated. REFERENCES 1. Boyse, J. W., "Interference Detection Among Solids and Surfaces," Communications of the ACM, Vol. 22, No. 1, 1979, pp. 39. 2. Chazell, B. and Dobkin, D. P., "Intersection of Convex Objects in Two and Three Dimensions," Journal of the Association for Computing Machinery, Vol. 34, No. 1, 1987, pp. 127. 3. Shamos, M. I., and Hoey, D., "Geometric Intersection Problems," Proc. of the 17 IEEE Symp. on Foundations of Computer Science, 1976, pp. 208215. 4. Nievergelt, J. and Preparata, F. P., "PlaneSweep Algorithms for Intersecting Geometric Figures," Communications of the A CM, Vol. 25, No. 10, 1982, pp. 739747. 5. Muller, D. E., and Preparata, F. P., "Finding the Intersection of Two Convex Polyhedra," Theoretical Computer Science, Vol. 7, 1987, pp. 217236. 6. Dobkin, D. P. and Kirkpatrick, D. G., "Fast Detection of Polyhedral Intersection," Theoretical Computer Science, Vol. 27, 1983, pp. 241253. 7. Ganter, M. A. and Uicker, J. J. Jr., "Dynamic Collision Detection Using Swept Solids," Journal of Mechanisms, Transmissions, and Automation in Design, Vol. 108, 1986, pp. 549555. 8. LozanoPerez, T., "Automatic Planning of Manipulator Transfer Movements," IEEE Transactions on System, Man, and Cybernetics, Vol. SMC11, No. 10, 1981, pp. 681689. 9. Brondsted, A., An Introduction to Convex Polytopes, SpringerVerlag, New York, 1982. 10. Valentine, F. A., Convex Sets, McGrawHill, New York, 1964. BIOGRAPHICAL SKETCH Paul Jeffrey Lewicki was born in Rochester, Pennsylvania, on March 22, 1961. He moved to Panama City, Florida, in 1972. He began undergraduate studies at the University of Florida in January, 1980. He earned a Bachelor of Science in Mechanical Engineering degree in May, 1982 and a Master of Engineering degree in May, 1986, both from the University of Florida. I certify that I have read this study and that in my opinion it conforms to acceptable standards of scholarly presentation and is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Gary4 Matthew, Chairman Associate Professor of Mechanical Engineering I certify that I have read this study and that in my opinion it conforms to acceptable standards of scholarly presentation and is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Joseph Duffy Graduate Research Professor of Mechanical Engineering I certify that I have read this study and that in my opinion it conforms to acceptable standards of scholarly presentation and is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Carl D. Crane Assistant Professor of Mechanical Engineering I certify that I have read this study and that in my opinion it conforms to acceptable standards of scholarly presentation and is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Ralph a. Selfri/ge Professor of Computer and Information Sciences I certify that I have read this study and that in my opinion it conforms to acceptable standards of scholarly presentation and is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. Neil L. White Professor of Mathematics This dissertation was submitted to the Graduate Faculty of the College of Engineering and to the Graduate School and was accepted as partial fulfillment of the requirements for the degree of Doctor of Philosophy. December, 1991 ILL. /j 0^ 6 Winfred M. Phillips Dean, College of Engineering Madelyn M. Lockhart Dean, Graduate School UNIVERSITY OF FLORIDA 1262 08285 458 8 