Из центра круга и радиуса вы можете написать уравнение, описывающее круг.
Из двух точек P0 и P1 вы можете написать уравнение, описывающее линию.
Итак, у вас есть 2 уравнения с 2 неизвестными, которые вы можете решить путем подстановки.
Пусть (x0, y0) = координаты точки P0
А (x1, y1) = координаты точки P1
А r = радиус круга.
Уравнение для круга:
(x-x0)^2 + (y-y0)^2 = r^2
Уравнение для линии:
(y-y0) = M(x-x0) // where M = (y1-y0)/(x1-x0)
Включение второго уравнения в первое дает:
(x-x0)^2*(1 + M^2) = r^2
x - x0 = r/sqrt(1+M^2)
Точно так же вы можете найти, что
y - y0 = r/sqrt(1+1/M^2)
Точка (x, y) - это точка пересечения линии и круга, (x, y) - ваш ответ.
P3 = (x0 + r/sqrt(1+M^2), y0 + r/sqrt(1+1/M^2))