Создание векторов
AB = (B.X-A.X, B.Y-A.Y)
AC = (C.X-A.X, C.Y-A.Y)
Затем вычислите ортогональную проекцию C
на AB
линию:
AD = AB * (AB.dot.AC) / (AB.dot.AB);
В координатах:
CF = ((B.X-A.X)*(C.X-A.X)+(B.Y-A.Y)*(C.Y-A.Y)) / ((B.X-A.X)^2+(B.Y-A.Y)^2)
D.X=A.X+(B.X-A.X)*CF
D.Y=A.Y+(B.Y-A.Y)*CF
Примечание что для случаев CF<0
или CF>1
точка проекции D
лежит вне сегмента AB
, поэтому ближайший точечный сегмент равен A
или B
соответственно