In analytic geometry, a line and a sphere can intersect in three ways:
- no intersection at all,
- intersection at exactly one point, and
- intersection at two points.
Methods for distinguishing these cases, and determining the coordinates for the points in the latter cases, are useful in a number of circumstances. For example, it is a common calculation to perform during ray tracing.
Calculation using vectors in 3D
In vector notation, the equations are as follows:
Equation for a sphere
* : points on the sphere
* : center point
* : radius of the sphere
Equation for a line starting at
* : points on the line
* : origin of the line
* : distance from the origin of the line
* : direction of line (a non-zero vector)
Searching for points that are on the line and on the sphere means combining the equations and solving for , involving the dot product of vectors:
Equations combined
:
Expanded and rearranged:
:
The form of a quadratic formula is now observable. (This quadratic equation is an instance of Joachimsthal's equation.)
:
where
*
*
*
Simplified
:
Note that in the specific case where is a unit vector, and thus , we can simplify this further to (writing instead of to indicate a unit vector):
:
:
*If , then it is clear that no solutions exist, i.e. the line does not intersect the sphere (case 1).
*If , then exactly one solution exists, i.e. the line just touches the sphere in one point (case 2).
*If , two solutions exist, and thus the line touches the sphere in two points (case 3).
See also
References