Given a sphere at location vector spherePosition with a radius of sphereRadius and a unit vector rayVector, (yes, I detest short variable names,) how do we test to see if the ray intersects with our sphere? This is an important test for projectile calculations, ray tracing, particle motion, and many other computer applications. And, to be honest, this is about as easy as intersection tests get.

  • First, we need the scalar sphereDistanceFromOrigin, which can be calculated as the magnitude of the vector spherePosition.
  • If we can travel from the origin in direction rayVector a distance of sphereDistanceFromOrigin, this gives us a new vector rayTravelledVector. This vector is the closest that our ray will ever get to spherePosition.
  • We subtract rayTravelledVector from spherePosition and get the vector distanceFromSphere.
  • If the magnitude of distanceFromSphere is less than sphereRadius, this ray will intersect the sphere.

Log in or register to write something here or to contact authors.