И тут внезапно оказывается, что ближайшая точка лежит на перпендикуляре.
Если сделаешь неограниченную прямую из копии отрезка CurveB - получишь то, что нужно. Для ограниченного отрезка вроде бы да, найдёт конец отрезка, если перпендикуляр лежит на прямой вне заданного отрезка