Line–sphere 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
-
- - center point
- - radius
- - points on the sphere
Equation for a line starting at
-
- - distance along line from starting point
- - direction of line (a unit vector)
- - origin of the line
- - points on the line
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
- Rearranged
- The form of a quadratic formula is now observable. (This quadratic equation is an instance of Joachimsthal's equation.[2])
- where
- Simplified
- Note that is a unit vector, and thus . Thus, we can simplify this further to
- 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).
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.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.