Хотя Ваше решения наверно даже лучше.
Подскажу как реализовать.

Через две точки можно составить уравнение прямой (см. википедия).
Середину отрезков можно найти.
Теперь перпендикуляр. Пусть уравнение прямой имеет вид:
x=x0+nx*t
y=y0+ny*t
Уравнение перпендикулярной к нему прямой проходящий через точку (x0, y0) имеет вид:
x=x0-ny*t
y=y0+nx*t
Про пересечение двух прямых я кое-где уже обсуждал:
http://www.cyberforum.ru/geometry/thread157427.html