Как найти ближайшую точку на окружности?
Есть окружность представленная в виде точки O(X, Y) и радиуса R.
Также есть другая точка A как найти координаты точки B ближайшей от A расположенной на окружности O?
Ответы (2 шт):
Задача составить у-е прямой проходящей из через 2 точки O(X0, Y0) и A (X1,Y1), найти B(X2,Y2) лежащая на прямой и на окружности.
ур-е прямой
(X-X0)/(X1-X0) = (Y-Y0)/(Y1-Y0)X = (Y-Y0)*(X1-X0)/(Y1-Y0) + X0
ур-е окружноти с ценром в О радиуса
(X – X0 )*(X – X0) + (Y – Y0)*(Y – Y0) = R*R
подставляем X
((Y-Y0)*(X1-X0)/(Y1-Y0) + X0 - X0)*((Y-Y0)*(X1-X0)/(Y1-Y0) + X0 - X0) + (Y – Y0)*(Y – Y0) = R*R
(Y-Y0)*(Y-Y0)*((X1-X0)/(Y1-Y0) + 1) = R*R
(Y-Y0)*(Y-Y0) = R*R/((X1-X0)/(Y1-Y0) + 1)
Y = R/((X1-X0)/(Y1-Y0) + 1)^(1/2) + Y0
X = (R/((X1-X0)/(Y1-Y0) + 1)^(1/2))*(X1-X0)/(Y1-Y0) + X0
Как то так надеюсь не ошибся.
Все просто, если сначала перенести начало координат в центр окружности, решить простейшую систему уравнений, сводящуюся к извлечению корня:
а потом вернуться в старую систему координат.
Если вы еще не учились примерно в 9 классе, то вот вам полное решение:
Решений, как видите, два. Один из знаков соответствует точке с минимальным расстоянием, второе - с максимальным. Какой именно знак для минимума, а какой для максимума - зависит от взаимного расположения точки и окружности.
Как вычислять по этим формулам и сравнивать значения, надеюсь, рассказывать не нужно?

