Line–sphere intersection
From Wikipedia, the free encyclopedia
In analytic geometry, a line and a sphere can intersect in three ways: no intersection at all, at exactly one point, or in two points. Methods for distinguishing these cases, and determining equations for the points in the latter cases, are useful in a number of circumstances. For example, this is a common calculation to perform during ray tracing.
In vector notation, the equations are as follows:
Equation for a sphere
-
- - center point
- r - radius
Equation for a line starting at (0,0,0)
-
- d - distance along line from starting point
- - direction of line (a unit vector)
Solving for d:
- Equations combined
- Expanded
- Rearranged
- Quadratic formula and simplified
- Note that is a unit vector, and thus . Thus, we can simplify this further to
- If the value under the square-root () is less than zero, then it is clear that no solutions exist, i.e. the line does not intersect the sphere (case 1).
- If it is zero, then exactly one solution exists, i.e. the line just touches the sphere in one point (case 2).
- If it is greater than zero, two solutions exist, and thus the line touches the sphere in two points (case 3).