Interseção de duas circunferências: pontos a partir de centros e raios
Descubra onde duas circunferências se cruzam pelos centros e raios: as de raio 5 com centros em (0, 0) e (8, 0) se cortam em (4, 3) e (4, -3). Se só se tocam, você recebe um ponto; se não se encontram, um aviso claro. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- X1
- 0
- Y1
- 0
- R1
- 5
- X2
- 8
- Y2
- 0
- R2
- 5
- Quantidade
- 2
- Relação
- intersect
- D
- 8
Dadas duas circunferências no plano cartesiano, sua interseção é o conjunto de pontos que pertencem a ambas ao mesmo tempo.
Como duas circunferências se encontram no plano
Seja d a distância euclidiana entre os centros. Os livros de geometria classificam a configuração comparando d com a soma e a diferença absoluta dos raios. Quando d é estritamente menor que a diferença absoluta dos raios, a circunferência menor fica inteiramente dentro da maior sem tocá-la.
Quando d é igual à soma, elas se tocam externamente em um único ponto; quando d é igual à diferença absoluta, tocam-se internamente em um único ponto. Quando a diferença absoluta é estritamente menor que d e d é estritamente menor que a soma, as circunferências se cruzam em exatamente dois pontos simétricos em relação à reta dos centros. Deslocar esse pé em mais ou menos h na direção perpendicular à reta dos centros produz os dois pontos de interseção, ou um único ponto quando h é zero.
Como o caminho usa apenas aritmética e uma raiz quadrada após as verificações geométricas, ele é determinístico, O(1) e livre de solucionadores iterativos ou bibliotecas trigonométricas. Centros coincidentes com raios iguais admitiriam infinitas soluções e são rejeitados em vez de aproximados.
Onde a interseção circunferência–circunferência aparece no trabalho real
Cursos de geometria analítica do ensino médio e da faculdade pedem constantemente que os alunos encontrem os pontos comuns a duas circunferências dadas; uma calculadora confiável com verificação estrita da configuração acelera a correção das lições e elimina erros de planilha em que alguém esquece o caso de contenção ou erra o sinal do deslocamento perpendicular.
Croquis de multilateração e topografia simples posicionam uma estação intersectando dois arcos de distância a partir de pontos de controle conhecidos; retornar ambos os candidatos com uma ordem determinística permite aos operadores escolher o lado fisicamente significativo sem refazer a álgebra à mão. Se depois você precisar de interseção circunferência–reta, interseções de esferas em três dimensões ou ajuste de circunferência a partir de amostras de pontos, trate-os como intenções de busca separadas em vez de sobrecarregar esta página de duas circunferências.
Casos de uso
Verificação de lições e provas
Calcule os pontos reais de interseção de duas circunferências a partir de centros e raios, ou falhe claramente quando elas não se encontram.
Croquis de topografia e multilateração
Intersecte dois arcos de distância a partir de estações conhecidas para recuperar posições candidatas com uma ordem de pontos determinística.
Auxiliares de restrições para CAD e jogos
Resolva duas restrições circulares ou pontos de contato de hitboxes circulares sem reimplementar a matemática do eixo radical em cada ferramenta.
Perguntas frequentes
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
Como sei se duas circunferências se cruzam?
Compare a distância entre os centros com a soma e a diferença dos raios. Se ficar estritamente entre as duas, elas se cortam em dois pontos; se for igual a uma delas, se tocam em um só, como duas de raio 5 com centros a 10 de distância.
O que acontece se as circunferências não se tocarem?
Se estiverem afastadas demais, ou uma ficar dentro da outra sem encostar, a calculadora avisa com uma mensagem clara em vez de devolver uma lista vazia que pareça uma resposta.
E se as duas circunferências forem idênticas?
Duas circunferências com o mesmo centro e o mesmo raio têm todos os pontos em comum, então não há resposta finita. Esse caso é recusado em vez de aproximado.
Dá para localizar um ponto a partir de duas distâncias?
Sim. Trace uma circunferência em volta de cada estação conhecida com a distância medida como raio; a interseção dá as posições candidatas, numa ordem fixa para você escolher o lado certo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/geom/two-circles-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":0,"y1":0,"r1":5,"x2":8,"y2":0,"r2":5}'const res = await fetch("https://api.kit.forhosting.com/geom/two-circles-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 0,
"y1": 0,
"r1": 5,
"x2": 8,
"y2": 0,
"r2": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/two-circles-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 0,
"y1": 0,
"r1": 5,
"x2": 8,
"y2": 0,
"r2": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/two-circles-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":0,"y1":0,"r1":5,"x2":8,"y2":0,"r2":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":0,"y1":0,"r1":5,"x2":8,"y2":0,"r2":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/two-circles-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"x1": 0,
"y1": 0,
"r1": 5,
"x2": 8,
"y2": 0,
"r2": 5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.two_circles_intersection",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Campos ausentes, raios não positivos, circunferências separadas e contenção estrita sem contato são rejeitados com um erro invalid_input claro, em vez de uma lista vazia que pareça uma solução bem-sucedida sem pontos. Sem chamadas de rede, sem amostragem aleatória e sem surpresas de ponto flutuante além da aritmética IEEE-754 habitual sobre os seis números que você fornece.
Como duas circunferências se encontram no plano
Coordenadas muito grandes ainda podem exceder a faixa do double IEEE-754; intermediários não finitos falham com uma mensagem clara em vez de retornar Infinity no JSON.
O que você envia e o que recebe de volta
Após a análise, o serviço calcula a distância d entre os centros, compara-a com a soma e a diferença absoluta dos raios e, ou falha com uma mensagem explícita de separação ou contenção, ou constrói o pé do eixo radical e a semicorda. Verificações de exemplo: centros em (0, 0) e (8, 0) com raios iguais a cinco produzem dois pontos próximos de (4, mais ou menos três); raios iguais a cinco com centros a dez unidades de distância são tangentes externos no ponto médio; centros muito mais afastados que a soma dos raios falham indicando circunferências separadas. Use a ferramenta gratuita do navegador para verificações rápidas e depois chame o mesmo contrato a partir de scripts quando precisar de avaliação em massa sem reimplementar as validações numéricas em cada linguagem. Aliases curtos como cx1, cy1, radius1, center1_x e os nomes correspondentes da segunda circunferência são aceitos, para que os rótulos dos formulários permaneçam compactos sem manipuladores divergentes. Campos ausentes, strings vazias, texto não numérico, NaN, Infinity e raios não positivos são rejeitados com invalid_input e não são cobrados. Em caso de sucesso, a resposta JSON retorna points como um array de um ou dois objetos com x e y arredondados para serialização estável, count igual ao comprimento do array, relation definido como intersect, tangent_external ou tangent_internal, a distância d, o eco das seis entradas normalizadas e method definido como two_circles_radical_axis, para que logs e interfaces didáticas documentem o algoritmo. O contrato é um JSON estável, adequado para testes unitários, corretores de lição de casa e pipelines em lote que mapeiam pares de circunferências para pontos de interseção. O preço da API é a base publicada de US$ 0,002 por item bem-sucedido.
Onde a interseção circunferência–circunferência aparece no trabalho real
Como esta capacidade é um motor de parse puro, a validação que falha não consome saldo e as execuções bem-sucedidas permanecem em US$ 0,002 por item.
Perguntas técnicas
Qual fórmula esta calculadora usa?
A construção do eixo radical: distância d entre os centros, deslocamento a = (r1² − r2² + d²)/(2d), semicorda h = √(r1² − a²) e depois deslocamentos perpendiculares ±. A resposta inclui method: "two_circles_radical_axis".
O que acontece se as circunferências não se intersectam?
Se estiverem separadas (d maior que a soma dos raios) ou uma contiver totalmente a outra sem tocar (d menor que |r1 − r2|), a requisição falha com invalid_input e uma mensagem descrevendo a configuração.
Circunferências tangentes contam como sucesso?
Sim. A tangência externa e a interna retornam um único ponto com relation tangent_external ou tangent_internal.
E se as duas circunferências forem a mesma?
Mesmo centro e raios iguais admitem infinitos pontos de interseção; esse caso é rejeitado com invalid_input em vez de inventar uma lista finita.