Check if a point is on a 3d line?

Robin Rodricks picture Robin Rodricks · Feb 18, 2011 · Viewed 7.5k times · Source

I know how to check if a point is on a 2d line or not, but I'd like to do this in 3D. Any ideas?

        // slope from point 1 to point 3
        var p13:Number = (Math.atan2 (end.x - start.x, end.y - start.y)) * toDegrees;

        // slope from point 1 to point 2 -- matches?
        var p12:Number = (Math.atan2 (point.x - start.x, point.y - start.y)) * toDegrees;

        return Math.round(p12) == Math.round(p13);

Answer

Lee Louviere picture Lee Louviere · Feb 18, 2011

Normalize the vectors. Check if the normals match.

Find the greatest value, divide all of the other values by that value so you get a vector normal.

Any point on a line should have the same vector normal.