% [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.
% 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
% 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 (2020). FindClosestPoint (https://www.mathworks.com/matlabcentral/fileexchange/56791-findclosestpoint), MATLAB Central File Exchange. Retrieved .