File Exchange

image thumbnail

point to line distance

version 1.3.2 (4.2 KB) by Rik
calculate the distance between a 2D or 3D line and one or more points


Updated 05 Jul 2020

GitHub view license on GitHub

You can input either a 2D or a 3D line and 2D or 3D points. This function is an extended version of the line below, with some input checking:

Licence: CC by-nc-sa 4.0

Cite As

Rik (2020). point to line distance (, GitHub. Retrieved .

Comments and Ratings (8)


Thank you very much for your effort in the file.
Could you please improve the code a little more to add two optional outputs: (1) the coordinates of the projection points for all points on the line and (2) a flag if the projection point is inside or outside of the line segment for each point?


@Nicola, thanks for pointing out this issue. I now uploaded a version where this should be fixed. The function now properly accepts 2D inputs.

The input point "pt" shouldn't be checked against the case in which it's of size 2?


@Kaleesh, I'll try to help you your question thread

Kaleesh Bala

lemme put this way

curvexy1 = [ 0 20 ];
curvexy2 =[20 50];

curvexy = (curvexy1 & curvexy2 );

plot (curvexy,'-')
hold on

[x,y] = ginput(1);
h1 = text(x,y,'o', ...
'HorizontalAlignment','center', ...
'Color', [1 0 0], ...

%% let curvexy1 ,curvexy2 be v1,v2 and ginput(1) be pt - I tried using your code to identify the perpendicular distance but ??


You can find the solution here:

A non-vectorized solution in the terms of the input to this function:

ap = pt-v1;ab = v2-v1;
result = v1 + dot(ap,ab)/dot(ab,ab) * ab;

Hi! Thanks, works great. I was wondering: how do I find the POINT of intersection between the original line and the projection of the point to this line? Thank you!



See release notes for this release on GitHub:


added tester and example file, and added logo

fixed issue with 2D input

added compatibility for R13 (MATLAB 6.5)

uploaded incorrect version, so now a bug in the orientation is fixed

MATLAB Release Compatibility
Created with R2020a
Compatible with R13SP1 to any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags