% [D,lambda,isConvex] = findClosestPoint(A,B,C)
%
% Given a line segment AB, and an arbitrary point C, compute the point D on
% the line AB which is closest to point C.
%
% INPUTS:
% A = [2,n] = [Ax;Ay] = First point on the line
% B = [2,n] = [Bx;By] = Second point on the line
% C = [2,n] = [Cx;Cy] = Arbitrary point of interest
%
% OUTPUTS:
% D = [2,n] = [Dx;Dy] = point on AB that is nearest to C
% lambda = [1,n] = lagrange multiplier: D = lambda*A + (1-lambda)*B
% isConvex = true if D is a convex combination of A and B
% isConvex = lambda >=0 && lambda <= 1
%
Matthew Kelly (2021). FindClosestPoint (https://www.mathworks.com/matlabcentral/fileexchange/56791-findclosestpoint), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.