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

Опубликовано: 22 Сентября, 2022

Даны положительные целые числа R , представляющие радиус окружности и центр окружности (X1, Y1), и другая точка (X2, Y2) на декартовой плоскости, задача состоит в том, чтобы найти угол между парой касательных, проведенных из точка (X2, Y2) на окружность.

Примеры:

Input: R = 6, (X1, Y1) = (5, 1), (X2, Y2) = (6, 9)
Output: 96.1851

Input: R = 4, (X1, Y1) = (7, 12), (X2, Y2) = (3, 4)
Output: 53.1317

Подход: Данная проблема может быть решена на основе следующих наблюдений:

  • Радиус составляет угол 90 градусов с касательной в точке контакта касательной и окружности. Кроме того, угол, образуемый парой касательных (θ) , делится пополам линией, соединяющей центр окружности и внешнюю точку.
  • Следовательно, расстояние между центром и внешней точкой можно рассчитать по формуле расстояния:

Distance = 

Now, consider d as the distance between the two given points, then In the right-angled triangle OAB,

=> 

=> 

=> 

=> 

Следовательно, используя приведенную выше формулу, можно вычислить угол между парой касательных, проведенных из точки (X2, Y2) к окружности.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(1)
Вспомогательное пространство: O(1)