Closest point on a line to a sphere...,
Crossbones+ - Reputation: 2193
Posted 10 February 2004 - 06:10 AM
closest point to a sphere is closest point to centre of sphere, BTW.
for a segment [E0, E1], and a spehre [C, r]
Vector D = C - E0;
Vector E = E1 - E0;
float e2 = E.Dot(E);
float ed = E.Dot(D);
float t = ed / e2;
if (t < 0.0f) t = 0.0f; else if (t > 1.0f) t = 1.0f;
Vector ClosestPoint = E0 + E * t;
Members - Reputation: 136
Posted 10 February 2004 - 06:11 AM
If you don''t know how to find the closest point on a line to another point (I''ll call this point "P" from now on), I''ll explain it to you. First take a point on the line. It doesn''t matter what point, so long as it is on the line. Let''s call this point the orgin of the line. Now take a vector representing the line. This vector should be normalized. Let''s call this vector the slope of the line. Get a vector by subtracting P-Orgin. Take the dot product of this vector and the slope. Multiply this answer by the slope. Add this to the orgin. This point is the closest point.
If the closest point lies inside the sphere, the line intersects the sphere.
I am the master of stories.....
If only I could just write them down...