В программировании на Java, если мы имеем пересекающиеся круги, с центральной точкой O (x1, y1) и радиусом R1, а другая с центральной точкой O '(x2, r2) и радиусом R2, как мы находим точки A и B, где они пересекаются?Поиск точек, где круг пересекает другой круг
ответ
Это не так просто.
Круги могут быть непересекающимися. Так что никакого решения.
Круги могут быть концентрическими. Поэтому ни решение, ни бесконечное количество решений, если они имеют одинаковый размер.
Один круг может находиться внутри другого, не касаясь края большего круга. Опять же, никакого решения.
В случае, когда наложение кругов упрощается. Но, как правило, будут два решения: одно решение, если они просто касаются друг друга.
Я думаю, что случай (2) является самым простым для тестирования и реализации: хорошей отправной точкой.
Для случая (4) вы можете одновременно решать алгебраические уравнения круга. Если вы работаете в декартовых координатах, вы получите квадратичные полиномы в x и y. Фактически, нереальные (т. Е. Комплексные) решения будут подразумевать один из случаев 1, 2 и 3.
Хорошо опубликуйте формулу для расчета этого. После этого мы можем реализовать некоторый Java-код. – greenapps
Во-первых, это не имеет ничего общего с Java, андроидом или программированием. Это математический вопрос. Но, чтобы ответить на ваш вопрос, точки пересечения являются третьей точкой треугольника, образованного линиями OO ', R1, R2 –
Это дубликат [этого сообщения] (http://math.stackexchange.com/questions/39561/find-the-intersecting-points-on-two-круги) на математике.SE –