Shortest distance between two line segments

Function computes the shortest distance between two line segments.

You are now following this Submission

Computes the shortest distance between two line segments given start and end points for each. Adapts the algorithm found on Dan Sunday's website (http://softsurfer.com/Archive/algorithm_0106/algorithm_0106.htm#dist3D_Segment_to_Segment
).
Usage: Input the start and end x,y,z coordinates for two line segments.
p1, p2 are [x,y,z] coordinates of first line segment and p3,p4 are for
second line segment.

Output: scalar minimum distance between the two segments.

Example:
P1 = [0 0 0]; P2 = [1 0 0];
P3 = [0 1 0]; P4 = [1 1 0];
dist = DistBetween2Segment(P1, P2, P3, P4)
dist =

1

Cite As

Nick (2026). Shortest distance between two line segments (https://uk.mathworks.com/matlabcentral/fileexchange/32487-shortest-distance-between-two-line-segments), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.1.0.0

I have updated the function to now give a variety of outputs. The default output is still the distance, however you can also output the vector connecting the two closest points and the coordinates of those points on the lines.

1.0.0.0