Как найти ближайшую точку на окружности?

Есть окружность представленная в виде точки O(X, Y) и радиуса R.

Также есть другая точка A как найти координаты точки B ближайшей от A расположенной на окружности O?


Ответы (2 шт):

Автор решения: Aziz Umarov

Задача составить у-е прямой проходящей из через 2 точки O(X0, Y0) и A (X1,Y1), найти B(X2,Y2) лежащая на прямой и на окружности.

  1. ур-е прямой (X-X0)/(X1-X0) = (Y-Y0)/(Y1-Y0)

    X = (Y-Y0)*(X1-X0)/(Y1-Y0) + X0

  2. ур-е окружноти с ценром в О радиуса (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

Как то так надеюсь не ошибся.

→ Ссылка
Автор решения: Harry

Все просто, если сначала перенести начало координат в центр окружности, решить простейшую систему уравнений, сводящуюся к извлечению корня:

введите сюда описание изображения

а потом вернуться в старую систему координат.

Если вы еще не учились примерно в 9 классе, то вот вам полное решение:

введите сюда описание изображения

Решений, как видите, два. Один из знаков соответствует точке с минимальным расстоянием, второе - с максимальным. Какой именно знак для минимума, а какой для максимума - зависит от взаимного расположения точки и окружности.

Как вычислять по этим формулам и сравнивать значения, надеюсь, рассказывать не нужно?

→ Ссылка