Задача Даны две окружности, каждая определена координатами своего центра и радиусом. Требуется найти все их точки пересечения (либо одна, либо две, либо ни одной точки, либо окружности совпадают). Решение Сведём нашу задачу к задаче о Пересечении окружности и прямой. Предположим, не теряя общности, что центр первой окружности - в начале координат (если это не так, то перенесём центр в начало координат, а при выводе ответа будем обратно прибавлять координаты центра). Тогда мы имеем систему двух уравнений: x2 + y2 = r12 (x - x2)2 + (y - y2)2 = r22 Вычтем из второго уравнения первое, чтобы избавиться от квадратов переменных: x2 + y2 = r12 x (-2x2) + y (-2y2) + (x22 + y22 + r12 - r22) = 0 Таким образом, мы свели задачу о пересечении двух окружностей к задаче о пересечении первой окружности и следующей прямой: Ax + By + C = 0, A = -2x2, B = -2y2, C = x22 + y22 + r12 - r22. А решение последней задачи описано в соответствующей статье. Единственный вырожденный случай, который надо рассмотреть отдельно - когда центры окружностей совпадают. Действительно, в этом случае вместо уравнения прямой мы получим уравнение вида 0 = С, где C - некоторое число, и этот случай будет обрабатываться некорректно. Поэтому этот случай нужно рассмотреть отдельно: если радиусы окружностей совпадают, то ответ - бесконечность, иначе - точек пересечения нет.