Путь решения может быть примерно таким (см. рис.)
Дано: центр окружности x0,y0, радиус R и точка с координатами a,b в произвольном месте.
Найдем угол альфа как arctg((b-y0)/(a-x0))
Дальше найдем угол бета как arccos( R / Sqrt((a-x0)^2+(b-y0)^2) )
Теперь Найдем угол гамма как 2п - альфа - бета
И наконец, находим точку x1,y1 вот так: x1=x0-R*cos(гамма) и y1=y0+R*sin(гамма)
Когда точка x1,y1 найдена, применяем формулу для касательной через точку на окружности..
Способ тяжеловатый получился..
Подумаю еще - может облегчу