Line–sphere intersection
![]() | This article may be too technical for most readers to understand.(July 2024) |

1. No intersection.
2. Point intersection.
3. Two point intersection.
In analytic geometry, a line and a sphere can intersect in three ways:
- No intersection at all
- Intersection in exactly one point
- Intersection in 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.[1]
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.[2])
- where
- Failed to parse (Conversion error. Server ("https://wikimedia.org/api/rest_") reported: "Cannot get mml. Server problem."): {\displaystyle c=(\mathbf {o} -\mathbf {c} )\cdot (\mathbf {o} -\mathbf {c} )-r^{2}=\left\Vert \mathbf {o} -\mathbf {c} \right\Vert ^{2}-r^{2}}
- Simplified
- Note that in the specific case where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathbf{u}}
is a unit vector, and thus Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left\Vert\mathbf{u}\right\Vert^2=1}
, we can simplify this further to (writing Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \hat{\mathbf{u}}}
instead of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathbf{u}}
to indicate a unit vector):
- Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nabla=[\hat{\mathbf{u}}\cdot(\mathbf{o}-\mathbf{c})]^2-(\left\Vert\mathbf{o}-\mathbf{c}\right\Vert^2-r^2)}
- Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle d=-[\hat{\mathbf{u}}\cdot(\mathbf{o}-\mathbf{c})] \pm \sqrt{\nabla}}
- If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nabla < 0} , then it is clear that no solutions exist, i.e. the line does not intersect the sphere (case 1).
- If Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \nabla = 0} , 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
- Intersection_(geometry)#A_line_and_a_circle
- Analytic geometry
- Line–plane intersection
- Plane–plane intersection
- Plane–sphere intersection
References
- ^ Eberly, David H. (2006). 3D game engine design: a practical approach to real-time computer graphics, 2nd edition. Morgan Kaufmann. p. 698. ISBN 0-12-229063-1.
- ^ "Joachimsthal's Equation".