Dois círculos podem se cruzam em dois pontos, ser tangente e se cruzam em exatamente um ponto, ou não se cruzam em tudo. Dada a origem de cada círculo e seu raio, primeiro você precisa para determinar se os dois círculos não se cruzam - isto é, se eles são muito distantes ou se alguém está contido completamente dentro do outro. Em seguida, você pode verificar se eles são o mesmo círculo, caso em que eles têm um número infinito de cruzamentos. Se os dois círculos que se cruzam em um ou dois pontos, você pode identificar qual dois pontos.
Determinar a distância "d" entre os dois centros tomando a raiz quadrada da diferença da coordenadas X quadrado mais a diferença de o coordenadas Y quadrado. Por exemplo, se o círculo 1 é centrado em (x1, y1) = (4, 6) e o círculo 2 está centrado em (X2, Y2) = (1, 2), a distância entre os centros é sqrt [(X1 - X2 ) ^ 2 + (Y1 - Y2) 2 ^] = sqrt [(4 - 1) ^ 2 + (6-2) ^ 2] = sqrt (9 + 16) = 5.
Adicionar os raios dos dois círculos e se essa soma (r0 + R1) é menor do que d, os círculos estão muito distantes para se cruzam. Tomar o valor absoluto da diferença dos raios dos círculos, | R0 - R1 |, e se isso é maior do que d, o círculo está completamente contido no outro e eles não se cruzam. Se d é 0 e os dois raios são iguais, os círculos são iguais e se cruzam em um número infinito de pontos. Se nenhum deles for o caso, vá para a Etapa 3, porque os círculos se cruzam em um ou dois pontos.
Determinar a distância "a" do ponto médio das duas intersecções do centro do primeiro círculo com a fórmula: A = (r0 ^ 2 - R1 ^ 2 + d ^ 2) / (2d), em que r0 é o raio o primeiro círculo, e R1 é o raio do segundo círculo. Por exemplo, com R0 = 3 e R1 = 4, então a = (3 ^ 2-4 ^ 2 + 5 ^ 2) / (2 * 5) = (9 - 16 + 25) / 10 = 1,8.
Encontrar o ponto médio das duas intersecções "P" com a fórmula: P = c0 + A (C1 - C0) / d, em que C0 é o centro do círculo e o primeiro c1 é o centro do círculo segundo. Por exemplo, com um círculo centrado em (4, 6) e um círculo centrado em 2 (1, 2), então P = (4, 6) + 1,8 (1-4, 2-6) / 5 = (4, 6) - 1.8 * (3, 4) / 5 = (2.92, 4.56).
Resolver para a distância das duas intersecções a partir do ponto P tomando a raiz quadrada da diferença do R0 quadrado e um quadrado: h = sqrt (r0 ^ 2 - a ^ 2). Para o exemplo em execução, h = sqrt (3 ^ 2-1,8 ^ 2) = sqrt (5,76) = 2,4.
Encontrar o primeiro ponto de intersecção em (x1, y1) com as fórmulas (x1 = Px + H (c1y - c0y) / d) e (y1 = Py - h (C1X - c0x) / d), onde C1X é a coordenada x do segundo círculo central, e c0x é a coordenada x do centro do primeiro círculo. Para o exemplo em execução, isso gera x1 = 2,92 + 2.4 (2-6) / 5 = 1 e Y1 = 4,56-2,4 (1 - 4) / 5 = 6.
Encontrar o segundo ponto de intersecção (X2, Y2) com as fórmulas (X2 = px - H (c1y - c0y) / d) e (Y2 = Py + H (C1X - c0x) / d). Para o exemplo de execução, x2 = 2,92-2,4 (2-6) / 5 = 4,84 e y2 = 4,56 + 2,4 * (1 - 4) / 5 = 3.12.