Point and ray
A ray is the same as a directed line. Unlike a line segment, which has a start and an end point, a ray has only a start point and a direction. The ray extends infinitely in this one direction. Because of the ray's similarity to a line, operations on a ray are similar to those on a line.
Because a ray's direction is a normal vector, we can use the dot product to check its direction against other known vectors. For example, to test whether a point is on a ray, we need to get a normalized vector from the origin of the ray to the test point. We can then use the dot product to see if this new normal vector is the same as the normal of the ray. If two vectors point in the same direction, the result of the dot product will be 1:
Getting ready
We are going to implement two functions: one to check if a test point is on a ray and one to get the closest point on a ray to a test point. Both of these functions are going to rely heavily on the dot product.
How to do it…
Perform the following...