Calculadora de distância 3D
Entre (1,5; 2,5; 3,5) e (4,5; 6,5; 8,5) as diferenças são 3, 4 e 5, então a distância em linha reta é 7,07106781187. Digite quaisquer dois pontos no espaço e receba esse comprimento e a diferença em cada eixo. 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
- 1,5
- Y1
- 2,5
- Z1
- 3,5
- X2
- 4,5
- Y2
- 6,5
- Z2
- 8,5
- Dx
- 3
- Dy
- 4
- Dz
- 5
- Distância
- 7,0710678119
Você envia seis números e recebe de volta a distância, os três deltas dos eixos e a distância ao quadrado, na mesma unidade em que mediu as coordenadas. É a generalização natural do teorema de Pitágoras para o espaço — a resposta à pergunta 'a que distância estão esses dois objetos' em volumes, cenas e modelos físicos — entregue em uma única chamada determinística, com um erro explícito sempre que alguma coordenada estiver ausente ou não for um número finito.
De Pitágoras às três dimensões
A fórmula da distância 3D é o teorema de Pitágoras aplicado duas vezes. Primeiro, a dimensão z é reduzida: a projeção do segmento sobre o plano xy tem comprimento sqrt(dx² + dy²), exatamente o caso 2D. Essa projeção e o desnível vertical dz formam os catetos de um segundo triângulo retângulo cuja hipotenusa é o verdadeiro segmento espacial, logo d = sqrt(dx² + dy² + dz²).
A calculadora de distância 3D executa exatamente esse cálculo e nada mais. Como cada delta é elevado ao quadrado, a ordem dos pontos é irrelevante: a distância de A a B é sempre igual à distância de B a A, e diferenças negativas se transformam nos mesmos comprimentos positivos. Como o resultado é a raiz quadrada de uma soma de quadrados, ele é sempre não negativo e vale zero exatamente quando os dois pontos coincidem.
A resposta repete as coordenadas interpretadas e os três deltas ao lado da distância, para que você confira exatamente quais entradas geraram qual saída sem refazer nada à mão. Essa rastreabilidade importa quando uma distância alimenta um limiar de colisão, uma tolerância de qualidade ou uma margem de segurança e alguém depois pergunta por que um caso limítrofe passou ou falhou.
Unidades, distâncias ao quadrado e robustez numérica
Nenhuma conversão é aplicada e nenhuma é necessária, o que também significa que é sua responsabilidade fornecer as seis coordenadas na mesma unidade antes de chamar. Dois detalhes de implementação valem conhecer.
Primeiro, a distância ao quadrado dx² + dy² + dz² é retornada junto com a própria distância: quando você só precisa ordenar candidatos por proximidade — o drone mais próximo, o sensor mais perto, o vértice mais distante — comparar distâncias ao quadrado evita totalmente a raiz quadrada e é o truque padrão em laços de vizinho mais próximo sobre grandes nuvens de pontos.
Segundo, a raiz quadrada é calculada com Math.hypot em vez de somar os quadrados de forma ingênua, de modo que diferenças de coordenadas próximas de 10¹⁵⁴ não transbordam para Infinity no caminho para uma resposta perfeitamente finita, e diferenças mínimas perto de 10⁻¹⁵⁴ não subfluem para zero. As saídas são arredondadas para doze casas decimais significativas, o que mantém as respostas estáveis e comparáveis entre máquinas e execuções sem sacrificar nenhuma precisão que uma medição física justificaria.
Casos de uso
Verificações de proximidade e colisão em motores 3D
Meça a separação entre objetos, waypoints ou agentes em jogos e simulações, disparando eventos quando a distância cruza um limiar.
Vizinho mais próximo em nuvens de pontos
Ordene as distâncias ao quadrado de um ponto de consulta a sensores, ativos ou amostras LiDAR e escolha o mais próximo sem pagar por raízes quadradas desnecessárias.
Folgas e tolerâncias de engenharia
Verifique se dois pontos de fixação, cabos ou componentes em um modelo CAD ou BIM mantêm a separação mínima ou máxima exigida.
Perguntas frequentes
Quanto custa?
Também é gratuito executar no seu navegador nesta página.
Qual fórmula ela usa?
A distância euclidiana no espaço: d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²), calculada com Math.hypot para robustez numérica.
Em que unidade está o resultado?
Na mesma unidade das suas coordenadas. Se x, y e z estão em metros, a distância está em metros; nenhuma conversão de unidade é aplicada.
Por que a distância ao quadrado também é retornada?
Porque comparar distâncias ao quadrado é mais barato quando você só precisa ordenar candidatos por proximidade — a raiz quadrada é desnecessária para a ordenação.
A distância entre dois pontos pode dar zero ou negativa?
Nunca dá negativa, porque é a raiz quadrada de uma soma de quadrados. Só dá zero quando os dois pontos são exatamente iguais, o que ajuda a encontrar posições repetidas.
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/math/distance-3d \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x1":1.5,"y1":2.5,"z1":3.5,"x2":4.5,"y2":6.5,"z2":8.5}'const res = await fetch("https://api.kit.forhosting.com/math/distance-3d", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x1": 1.5,
"y1": 2.5,
"z1": 3.5,
"x2": 4.5,
"y2": 6.5,
"z2": 8.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/distance-3d",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x1": 1.5,
"y1": 2.5,
"z1": 3.5,
"x2": 4.5,
"y2": 6.5,
"z2": 8.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/distance-3d", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x1":1.5,"y1":2.5,"z1":3.5,"x2":4.5,"y2":6.5,"z2":8.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x1":1.5,"y1":2.5,"z1":3.5,"x2":4.5,"y2":6.5,"z2":8.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/distance-3d", 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": 1.5,
"y1": 2.5,
"z1": 3.5,
"x2": 4.5,
"y2": 6.5,
"z2": 8.5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.distance_3d",
"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
A API de distância 3D calcula a distância euclidiana entre dois pontos no espaço tridimensional a partir das coordenadas x, y e z: o comprimento em linha reta do segmento que une (x1, y1, z1) e (x2, y2, z2), dado por d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²).
Unidades, distâncias ao quadrado e robustez numérica
O endpoint é deliberadamente agnóstico quanto a unidades: coordenadas em metros produzem distância em metros, voxels produzem voxels e unidades de modelo CAD produzem unidades de modelo.
Validação, erros e como integrar
O contrato é rigoroso de propósito: cada uma das seis coordenadas deve ser um número finito. Strings numéricas como '4.5' são aceitas e convertidas, porque dados de formulários e query strings chegam como texto no mundo real, mas a conversão é exata: qualquer coisa que não seja interpretada integralmente como número é rejeitada em vez de truncada silenciosamente. Um campo ausente, um null, uma string vazia, um booleano, um array, um rótulo não numérico como 'up', NaN ou ±Infinity produzem o mesmo resultado — um erro limpo de invalid_input indicando o campo problemático, e sem cobrança, pois erros do cliente nunca são faturados. A integração é trivial: envie por POST um objeto JSON com x1, y1, z1, x2, y2 e z2, leia o campo distance da resposta e trate o código de erro documentado em vez de analisar mensagens. Se seus dados são genuinamente bidimensionais, fixe as duas coordenadas z no mesmo valor ou use o endpoint 2D dedicado, que precisa de apenas quatro números. O mesmo código que roda na nossa edge roda grátis no seu navegador nesta página, então você pode prototipar com números reais antes de conectar a API ao seu pipeline, e paga o US$ 0,002 publicado por requisição apenas quando automatizar.
Perguntas técnicas
O que acontece se uma coordenada estiver ausente ou não for um número?
Você recebe um erro invalid_input indicando o campo, e a requisição não é cobrada. NaN e Infinity também são rejeitados.
Posso usar para pontos em 2D?
Sim — dê aos dois pontos a mesma coordenada z e a fórmula se reduz ao caso 2D, embora o endpoint 2D dedicado precise de menos campos.