Конечно, надо смотреть, чтобы

, если

,
Я бы сказал так. Если длина ребра, в ваших обозначениях это

, существенно меньше чем расстояние от курсора до какого-то из концов ребра (то есть ребро по сути - точка а не отрезок), то за расстояние до ребра можно принять расстояние до одного из концов ребра -- погрешность будет не больше длины ребра, и дальше не считать попадает ли перпендикуляр на ребро или нет.
Вообще, если вы заботитесь о скорости\оптимальности вычислений, я бы наверное посоветовал делать так:
1. Вычисляем длину ребра, пусть будет

2. Вычисляем расстояние до первого конца ребра, пусть будет

3. Если

(например

) то квадрат искомого расстояния

, конец.
4. Вычисляем расстояние до второго конца ребра, пусть будет

5. Определяем наибольшую из длин

. Если это

, то высота точно попадает на ребро, переходим к вычислению высоты, пункт 8. Здесь можно добавить еще проверку: если

то у треугольника почти развернутый угол против ребра, и можно прикинуть чему равна высота.
6. Если наибольшая из длин это

, то вычисляем знак у

, если меньше или равно нулю, то треугольник тупоугольный с тупым углом против

или прямоугольный с гипотенузой

, тогда квадрат искомого расстояния

, конец. Если

, переходим к пункту 7.
7. Наибольшая из длин это

, вычисляем знак у

, если меньше или равно нулю, то треугольник тупоугольный с тупым углов против

или прямоугольный с гипотенузой

, тогда квадрат искомого расстояния

, конец. Если

, переходим к пункту 8.
8. Оба угла, прилежащие к ребру острые, высота попадает на ребро, вычисляем её квадрат

, конец.