Given a line passing through two points A and B and an arbitrary point C in a 3-D plane, the task is to find the shortest distance between the point C and the line passing through the points A and B.
Input: A = (5, 2, 1), B = (3, 1, -1), C = (0, 2, 3) Output: Shortest Distance is 5 Input: A = (4, 2, 1), B = (3, 2, 1), C = (0, 2, 0) Output: Shortest Distance is 1
Consider a point C and a line that passes through A and B as shown in the below figure.
Now Consider the vectors, AB and AC and the shortest distance as CD. The Shortest Distance is always the perpendicular distance. The point D is taken on AB such that CD is perpendicular to AB.
Construct BP and CP as shown in the figure to form a Parallelogram. Now C is a vertex of parallelogram ABPC and CD is perpendicular to Side AB. Hence CD is the height of the parallelogram.
Note: In the case when D does not fall on line segment AB there will be a point D’ such that PD’ is perpendicular to AB and D’ lies on line segment AB with CD = PD’.
The magnitude of cross product AB and AC gives the Area of the parallelogram. Also, the area of a parallelogram is Base * Height = AB * CD. So,
CD = |ABxAC| / |AB|
Below is the CPP program to find the shortest distance:
Shortest Distance is : 1.63299
- Distance between a point and a Plane in 3 D
- Find foot of perpendicular from a point in 2 D plane to a Line
- Shortest distance between a point and a circle
- Perpendicular distance between a point and a Line in 2 D
- Equation of straight line passing through a given point which bisects it into two equal line segments
- Mirror of a point through a 3 D plane
- Hammered distance between N points in a 2-D plane
- Find the foot of perpendicular of a point in a 3 D plane
- Find mirror image of a point in 2-D plane
- Check if a line at 45 degree can divide the plane into two equal weight parts
- Number of jump required of given length to reach a point of form (d, 0) from origin in 2D plane
- Shortest distance from the centre of a circle to a chord
- Find the shortest distance between any pair of two different good nodes
- Reflection of a point about a line in C++
- Find the other end point of a line with given one end and mid
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.