Пусть x0;y0 - центр известной окружности радиуса r, x1;y1 - точка, от которой ищем "ближайшую". Тогда угол A = arctan[(y1-y0)/(x1-x0)]
x2 = x0 + r*cos(A)
y2 = y0 + r*sin(A)
То есть, я иду не из точки, а из центра известной окружности по направлению к точке. Таким образом, задача должна быть решена в общем случае - не важно, точка внутри или снаружи окружности
Просьба проверить.