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

, если 

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

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

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

3. Если 

 (например 

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

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

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

. Если это 

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

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

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

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

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

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

, конец. Если 

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

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

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

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

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

, конец. Если 

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

, конец.