Intersection Detection of Two Ellipsoids

Similar documents
Pre-Algebra Academic Content Standards Grade Eight Ohio. Number, Number Sense and Operations Standard. Number and Number Systems

Solutions to Homework 10

Algebra Academic Content Standards Grade Eight and Grade Nine Ohio. Grade Eight. Number, Number Sense and Operations Standard

Curves and Surfaces. Goals. How do we draw surfaces? How do we specify a surface? How do we approximate a surface?

Arrangements And Duality

TWO-DIMENSIONAL TRANSFORMATION

KEANSBURG SCHOOL DISTRICT KEANSBURG HIGH SCHOOL Mathematics Department. HSPA 10 Curriculum. September 2007

Section 1.1. Introduction to R n

11.1. Objectives. Component Form of a Vector. Component Form of a Vector. Component Form of a Vector. Vectors and the Geometry of Space

3. INNER PRODUCT SPACES

Essential Mathematics for Computer Graphics fast

Unified Lecture # 4 Vectors

1 Symmetries of regular polyhedra

Current Standard: Mathematical Concepts and Applications Shape, Space, and Measurement- Primary

Prentice Hall Mathematics: Algebra Correlated to: Utah Core Curriculum for Math, Intermediate Algebra (Secondary)

Big Ideas in Mathematics

Computational Geometry. Lecture 1: Introduction and Convex Hulls

Number Sense and Operations

Solving Geometric Problems with the Rotating Calipers *

Algebra 2 Chapter 1 Vocabulary. identity - A statement that equates two equivalent expressions.

Mathematics (MAT) MAT 061 Basic Euclidean Geometry 3 Hours. MAT 051 Pre-Algebra 4 Hours

Content. Chapter 4 Functions Basic concepts on real functions 62. Credits 11

Lecture 2: Homogeneous Coordinates, Lines and Conics

Figure 1.1 Vector A and Vector F

DERIVATIVES AS MATRICES; CHAIN RULE

Increasing for all. Convex for all. ( ) Increasing for all (remember that the log function is only defined for ). ( ) Concave for all.

Lecture L3 - Vectors, Matrices and Coordinate Transformations

Elasticity Theory Basics

Prentice Hall Algebra Correlated to: Colorado P-12 Academic Standards for High School Mathematics, Adopted 12/2009

Thnkwell s Homeschool Precalculus Course Lesson Plan: 36 weeks

Introduction to Computer Graphics

GRADES 7, 8, AND 9 BIG IDEAS

Solving Simultaneous Equations and Matrices

1.3. DOT PRODUCT If θ is the angle (between 0 and π) between two non-zero vectors u and v,

alternate interior angles

Lecture L22-2D Rigid Body Dynamics: Work and Energy

Mechanics 1: Conservation of Energy and Momentum

Chapter 17. Orthogonal Matrices and Symmetries of Space

Biggar High School Mathematics Department. National 5 Learning Intentions & Success Criteria: Assessing My Progress

3D Distance from a Point to a Triangle

Common Core Unit Summary Grades 6 to 8

MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.

Linear Algebra Notes for Marsden and Tromba Vector Calculus

ELECTRIC FIELD LINES AND EQUIPOTENTIAL SURFACES

An Introduction to Applied Mathematics: An Iterative Process

5.5. Solving linear systems by the elimination method

Math 241, Exam 1 Information.

521493S Computer Graphics. Exercise 2 & course schedule change

Tennessee Mathematics Standards Implementation. Grade Six Mathematics. Standard 1 Mathematical Processes

Geometry Notes PERIMETER AND AREA

Mathematics Course 111: Algebra I Part IV: Vector Spaces

Largest Fixed-Aspect, Axis-Aligned Rectangle

Data Mining: Algorithms and Applications Matrix Math Review

INTRODUCTION TO RENDERING TECHNIQUES

Volumetric Meshes for Real Time Medical Simulations

Bedford, Fowler: Statics. Chapter 4: System of Forces and Moments, Examples via TK Solver

Torgerson s Classical MDS derivation: 1: Determining Coordinates from Euclidean Distances

Exam 1 Sample Question SOLUTIONS. y = 2x

Geometry Course Summary Department: Math. Semester 1

DRAFT. Further mathematics. GCE AS and A level subject content

MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem

December 4, 2013 MATH 171 BASIC LINEAR ALGEBRA B. KITCHENS

Least-Squares Intersection of Lines

Chapter 6 Circular Motion

Prentice Hall: Middle School Math, Course Correlated to: New York Mathematics Learning Standards (Intermediate)

Geometry of Vectors. 1 Cartesian Coordinates. Carlo Tomasi

Definition: A vector is a directed line segment that has and. Each vector has an initial point and a terminal point.

Numerical Analysis Lecture Notes

New York State Student Learning Objective: Regents Geometry

Physics 235 Chapter 1. Chapter 1 Matrices, Vectors, and Vector Calculus

Degree Reduction of Interval SB Curves

ALGEBRA 2/TRIGONOMETRY

LINEAR ALGEBRA W W L CHEN

Solutions to Math 51 First Exam January 29, 2015

CURRICULUM FOR THE COMMON CORE SUBJECT OF MATHEMATICS

In mathematics, there are four attainment targets: using and applying mathematics; number and algebra; shape, space and measures, and handling data.

5.3 The Cross Product in R 3

Angle - a figure formed by two rays or two line segments with a common endpoint called the vertex of the angle; angles are measured in degrees

Problem of the Month: Cutting a Cube

Linear Programming. March 14, 2014

a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2.

The Effects of Start Prices on the Performance of the Certainty Equivalent Pricing Policy

A QUICK GUIDE TO THE FORMULAS OF MULTIVARIABLE CALCULUS

Georgia Department of Education Kathy Cox, State Superintendent of Schools 7/19/2005 All Rights Reserved 1

Math for Game Programmers: Dual Numbers. Gino van den Bergen

North Carolina Math 2

Computer Graphics. Geometric Modeling. Page 1. Copyright Gotsman, Elber, Barequet, Karni, Sheffer Computer Science - Technion. An Example.

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Section 12.6: Directional Derivatives and the Gradient Vector

MATH 132: CALCULUS II SYLLABUS

Geometry Unit 6 Areas and Perimeters

Volumes of Revolution

ab = c a If the coefficients a,b and c are real then either α and β are real or α and β are complex conjugates

[1] Diagonal factorization

Geometric Constraints

Geometric Transformation CS 211A

Fric-3. force F k and the equation (4.2) may be used. The sense of F k is opposite

Numeracy and mathematics Experiences and outcomes

Parametric Curves. (Com S 477/577 Notes) Yan-Bin Jia. Oct 8, 2015

2x + y = 3. Since the second equation is precisely the same as the first equation, it is enough to find x and y satisfying the system

Transcription:

Intersection Detection of Two Ellipsoids Jeff Duzak March 12, 2007 Introduction An essential problem for 3-dimensional simulations and games is detecting collisions between objects. For example, a bowling simulation must detect when the bowling ball collides with a pin, or two pins collide with each other. Typically, 3d objects will be approximated using simple primitive objects, such as polyhedra and ellipsoids. A bowling ball is simply a sphere, and a pin can be approximated as two ellipsoids. An ellipsoid itself can be constructed by applying scaling, rotation, and translation operations to a unit sphere. Therefore, an algorithm that could quickly detect the intersection of two spheres under scaling, rotation, and translation operations would be very useful. The purpose of this research is to find such an algorithm. The literature contains a wealth of algorithms for intersection detection. These algorithms vary with respect to the types of shapes supported, with some algorithms supporting completely arbitrary shapes, some supporting broad classes of shapes such as quadric surfaces, and some approximating complex shapes as triangle meshes. Further, the goals of the algorithms vary. Some algorithms are only interested in detecting whether or not there is an intersection. Others are concerned with computing the shape of the intersection. Others are concerned with detecting collisions over a window in time between moving objects. This report will review these algorithms, and discuss their application to our central problem. Last, this report will describe in detail an algorithm using an adaptation of Newton's method of finding roots of a continuous function. We will discuss the implementation of this algorithm, and investigate its computational complexity. Known Methods There are a large number of algorithms for intersection detection of 3d objects, each useful for a particular domain of problems. A 2004 SIGGRAPH course [HA04] was entirely devoted to describing various intersection and collision detection methods. The course points out that there is a distinction between intersection detection, which checks if two objects occupy the same point in space at a static snapshot in time, and collision detection, which detects if two objects intersect at any point in a given window in time. A typical approach to collision detection is to partition a window in time into a number of static snapshots, and perform intersection detection on each of these. The number of snapshots would depend on the size and proximity of the objects and the speed at which objects move. However, the problem with this approach is that, at points in time where objects are close together and moving relatively fast, a

very large number of snapshots are needed, and so the algorithm can virtually lock up. Further, in certain cases where objects just graze each other, it possible to miss collisions. For certain limited, simple situations, it is possible to determine with certainty whether or not two objects collide in a given window of time without performing intersection detection a large number of times. For example, M. Gomez describes a simple method to detect the collision of two circles moving with constant velocities [GO99]. Such methods are very useful for 3-d games and simulations. In our example of a bowling simulation, it would be very useful to be able to, in a single calculation, determine the point in time at which the ball collides with a pin. However, these methods only cover very simple situations, such as collisions of two circles, and therefore can't be applied to the more complicated problem of the collisions of arbitrary 3- dimensional ellipsoids. A large amount of research is devoted to detecting collisions between polyhedra. A polyhedron is composed of a number of polygon faces, each of which can be broken down into a number of triangles. Therefore, the problem reduces to intersection detection between triangles. Fujio Yamaguchi [YA85] describes how intersection detection of many simple objects, such as rays and triangles, reduces to computing the determinant(s) of one or more 4x4 matrices, and proposes to build hardware support for determinant computation as a means to detect intersections quickly. Chazelle and Dobkin [CH87] describe an algorithm that can detect the intersection of two polyhedra in O(log 3 n) time, where n denotes the total number of vertices in the polyhedra. David Mount [MO92] describes an algorithm that can compute whether or not two 2-dimensional polygons intersect in O(m log 2 n) time, given some preprocessing on the polygons, where n again is the count of vertices, and m is the count of vertices in the simplest polygonal curve that separates the two polygons in question. It is not clear if a variation of Mount's algorithm can be applied to 3-dimensional objects. Assuming we were to use a polyhedron method to detect intersections, we would have to approximate our ellipsoids as polyhedra. We want to detect intersections within a certain margin of error ε. Supposing that the largest radius of either ellipsoid is given by r, the value k = r ε gives an estimate of the size of the problem. It is useful to know the complexity of a polyhedron intersection method in terms of k. Given r and ε, we can calculate approximately how small of triangles we would have to partition the ellipsoid into.

Figure 1. Approximation of an ellipsoid as a polyhedron, showing an approximate relationship between the length of the side of a face and the maximum error in the approximation In the figure above, l denotes the length of the side of a face in the polyhedron, and, approximating the ellipsoid as a sphere, r is the radius of the sphere. The maximum distance from the polyhedron face to the ellipsoid is given by: ε = r r 2 1 4 l2 The first non-zero term of the Taylor expansion for this expression gives us: This gives us the following expression for k: ε l2 8r k = r ε 8r2 l 2 The surface area of the ellipsoid is proportional to r 2, and the area of a face is proportional to l 2, therefore the number of faces required is proportional to r 2 / l 2. Therefore, the number of vertices n is also proportional to r 2 / l 2, which itself is proportional to k, our measure of the size of the problem. Therefore, Chazelle and Dobkin's method can detect intersections with the desired accuracy in O(log 3 k) time. Other research considers intersections of more general objects. A considerable amount of work has been done to compute the intersections of quadric surfaces [LE76, SA83, GO91]. A quadric surface is one defined by the equation:

x y z 1 M x y z 1 = 0 Here, M is a 4x4 matrix. The matrix M completely describes the surface. Therefore, the matrix and the surface it describes are often referred to interchangeably. Conveniently, an arbitrary ellipsoid is a quadric surface. If a point lies on two quadric surfaces M and N, then it must satisfy the equation x y z 1 M + αn x y z 1 = 0 for any value of α. Certain properties of the matrix, such as its rank, can be used to deduce properties of the surface it describes. In fact, certain combinations of properties of the matrix indicate that the quadric surface is invalid, that no points satisfy the equation above. Therefore, the problem of determining whether two quadric surfaces intersect reduces to the problem of determining if M + αn is invalid for some α. If such an α exists, then no points satisfy the equation above. Therefore, no points lie on both quadric surfaces, and therefore the surfaces do not intersect. The complexity of this algorithm is unclear, since it is unclear how to search for values of α that produce invalid quadric surfaces. Further, this algorithm is more concerned with determining the exact shape of an intersection between two quadric surfaces. Therefore, it is fairly heavyweight for the problem at hand, which is simply to determine whether or not two ellipsoids intersect. Last, research by Paul Comba [CO68] allows for intersection detection of arbitrary objects. In his algorithm, an object is defined as the intersection of the sets of points which satisfy a number of continuous, differentiable inequalities g i x, y, z 0. Comba combines these inequalities into a single continuous, differentiable inequality such that any point that satisfies the inequality lies in both objects. Therefore, if such a point exists, the two objects intersect. So, the problem is reduced to that of finding the minimum value of a function. A variety of methods, such as Newton's method, can be used to find this minimum. In this way, Comba's algorithm is similar to the algorithm that is described below. An Algorithm using Newton's Method Here, we will describe an algorithm that was not found in the literature. First, let's define more precisely the problem of finding the intersection of two arbitrary ellipsoids. We will represent a point p using homogenous coordinates, which are defined as follows:

P = x y z 1 where x, y, and z are the customary coordinates in 3-dimesional space, and the 1 in the last row of the vector is useful in order to allow translations operations to be performed via matrix multiplication. Scaling, rotation, and translation operations can be performed by multiplying the coordinate vector by a 4x4 matrix. An arbitrary ellipsoid is formed by performing a scaling operation, followed by a rotation, followed by a translation on a unit circle. Hence, an ellipsoid is defined as: E = TRS x y z 1 x 2 + y 2 + z 2 = 1 where T, R, and S are the translation, rotation, and scaling matrices. Note that the matrix TRS fully defines the ellipsoid. Let us denote the ellipsoid's "local" coordinate space to mean the coordinate space in which the ellipsoid is a unit circle centered around the origin, and denote the "global" coordinate space to be the space in which all of our objects reside. Therefore, multiplying by TRS converts coordinates from the ellipsoid's local coordinate space to the global coordinate space. Further, multiplying by S -1 R -1 T -1 converts coordinates from the global space to the ellipsoid's local space. Now, suppose we have two ellipsoids E 1 and E 2 defined by T 1 R 1 S 1 and T 2 R 2 S 2. Define two new matrices as follows: M 1 = T 1 R 1 S 1 M 2 = T 2 R 2 S 2 In order to convert coordinates from E 1 's space to E 2 's space, we first convert from E 1 's space to the global coordinate space, and then from the global space to E 2 's space. Therefore, multiplying by the matrix M 2 M 1-1 converts coordinates from E 1 's space to E 2 's space. In order to determine if E 1 and E 2 intersect, we want to find the point on E 2 with the minimum distance to the center of E 1. If that point is within a distance of 1 from the origin in E 1 's coordinate space, then the ellipsoids intersect. In order to find the point with the minimum distance to E 1, we should set up a distance function d u, v that takes as inputs two parameters that define the location of a point on the surface of E 2. The extremes of the function happen at points for which d(u, v) = 0. We use Newton's method to solve for these points.

In Newton's method, given a continuous, differentiable function f(x), you solve for a root f(x)=0 by making iteratively improving guesses. Given a guess x i, the next guess x i+1 is calculated as follows: x i+1 = x i f x i df dx (x i) For our problem, we take an initial guess for the point on E 2 at the minimum distance to the center of E 1, and then make subsequent guesses that we believe will bring d u. v closer to zero. Note that it is easier to express the distance function in E 1 's coordinate space, but it is easier to specify a valid point on E 2 in E 2 's coordinate space. Therefore, the algorithm will convert points back and forth between E 1 's and E 2 's coordinate spaces. Also note that vectors can be scaled and rotated using the same scaling and rotating matrices used for points. However, translations do not affect vectors. Therefore, to convert a vector from E 2 's space to E 1 's space, we multiply it by S -1 1 R -1 1 R 2 S 2. To convert a vector from E 1 's space to E 2 's space, we multiply by the inverse matrix. Our iterative guesses are points on the surface of E 2. The coordinate system which we use to define these points, and with which we parameterize the distance function, is arbitrary. For example, it might make sense to use standard polar coordinates, where θ is thought of as the angle down from the north pole of the unit sphere, and ϕ is thought of as an angle of longitude. However, since the coordinate system is arbitrary, we can choose whichever one is most convenient. Further, we can change the coordinate system we use from iteration to iteration. This is particularly easy if we don't store our guess points in terms of these coordinates, but rather store them simply in Cartesian coordinates. Recall that in E 2 's local coordinate space, E 2 is a unit sphere. Our guess point lies on the surface of this sphere. Any unit vector orthogonal to the radius to our guess point is in fact the derivative of the position of that point with respect to some parameter u in some coordinate system. For example, after choosing the unit vector, we could find a polar coordinate system such that our unit vector is equal to dp. If we find two such vectors that are themselves dθ orthogonal, then we have dp dp and for some coordinate system u, v. Further, both d2 p and d2 p du dv du 2 dv 2 are equal to the unit vector from our guess point toward the center of the sphere, that is, the negative of the radius to the guess point. So, without precisely defining the coordinate system, we have found dp du, dp dv, d2 p du 2, and d2 p dv 2. We then convert these vectors to E 1's coordinate space.

Figure 2. Any two unit vectors that are orthogonal to each other and orthogonal to the radius are equal to dp/du and dp/dv for some coordinate system (u,v). We now have dp in E 1's coordinate space, and can likewise calculate our guess point's du position in E 1 's coordinate space. Clearly, dd dp is the length of the component of that lies in the du same direction as a vector from the center of E 1 to our guess point. That is, given some infinitesimal change in u, we know in what direction and at what rate our guess point will move. The component of that movement away from the center of E 1 is exactly the rate at which the distance from the center of E 1 will increase. The same argument applies to d2 d du2. Therefore, if N is a unit vector pointing from the center of E 1 to our guess point, then we have dd du = dp du N d 2 d du 2 = d2 p du 2 N Similarly, we calculate dd and d2 d dv dv2. Once we have calculated all four of these values, we can compute how far we should move our guess point as follows: du p = p dd du d 2 d du 2 dp du dd dv d 2 d dv 2 dp dv

Newton's method is known to converge quadradically. That is, if we think about the number of significant digits in the result, this number doubles with each iteration of the method. Therefore, our algorithm should run in O(log log k) time. This is significantly faster than the other methods described. References [CH87] Chazelle, B. and D. P. Dobkin. Intersection of convex objects in two and three dimensions. Journal of the ACM, 31:1 27, 1987. [CO68] Comba, Paul G. A Procedure for Detecting Intersections of Three-Dimensional Objects. Journal of the ACM, Volume 15, Issue 3, July 1968. Pages 354-366. [GO91] Goldman, Ronald N. and James R. Miller. Combining algebraic rigor with geometric robustness for the detection and calculation of conic sections in the intersection of two natural quadric surfaces. Proceedings of the first ACM symposium on Solid modeling foundations and CAD/CAM applications, 1991. [GO99] Gomez, M. Simple intersection tests for games. Gamasutra, October 1999. [HA04] Hadap, Sunil et al. Collision detection and proximity queries. ACM SIGGRAPH 2004 Course Notes. [LE76] Levin, J. A Parametric Algorithm for Drawing Pictures of Solid Objects Composed of Quadric Surfaces. Communications of the ACM, Vol. 19, No. 10, October 1976, pp. 555-563. [MO92] Mount, David M. Intersection detection and separators for simple polygons. Proceedings of the eighth annual symposium on Computational geometry, 1992. [SA83] Sarraga, R. F. Algebraic Methods for Intersections of Quadric Surfaces in GMSOLID. Computer Vision, Graphics, and Image Processing, Vol. 22, No. 2, May 1983, pp. 222-238. [YA85] Yamaguchi, Fujio. A Unified Approach to Interference Problems Using a Triangle Processor. ACM SIGGRAPH Computer Graphics, v.19 n.3, p.141-149, Jul. 1985.