Есть две точки A(x1, y1) и B(x2, y2) и окружность радиуса R с центром в начале координат. нужна функция int count(double x1, y1, x2, y2, R), которая возвращает количество общих точек у отрезка AB и окружности (0, 1 или 2). Или хотя бы формула.
0
Комментарии (1)
популярные
новые
старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
И уравнение окружности:
Выразив из первого у через х и подставив во 2-е я получил:
Теперь для нахождения количества пересечений нужно решить квадратное уравнение, где b = 0. Получил вот такой код:
Вроде бы работает. Но Вы перепроверьте всякие там подстановки и знаки, я наспех делал. Заодно и разберетесь ;-)