Calculadora de distancia 3D
Entre (1,5; 2,5; 3,5) y (4,5; 6,5; 8,5) las diferencias son 3, 4 y 5, de modo que la distancia en línea recta es 7,07106781187. Escriba dos puntos cualesquiera y obtenga esa longitud junto con la diferencia en cada eje. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- X1
- 1,5
- Y1
- 2,5
- Z1
- 3,5
- X2
- 4,5
- Y2
- 6,5
- Z2
- 8,5
- Dx
- 3
- Dy
- 4
- Dz
- 5
- Distancia
- 7,0710678119
Usted envía seis números y recibe la distancia, los tres deltas de los ejes y la distancia al cuadrado, en la misma unidad en que midió las coordenadas. Es la generalización natural del teorema de Pitágoras al espacio —la respuesta a «¿a qué distancia están estas dos cosas?» en volúmenes, escenas y modelos físicos— entregada en una única llamada determinista, con un error explícito cuando falta alguna coordenada o no es un número finito.
De Pitágoras a las tres dimensiones
La fórmula de la distancia 3D es el teorema de Pitágoras aplicado dos veces. Primero se colapsa la dimensión z: la proyección de su segmento sobre el plano xy tiene longitud sqrt(dx² + dy²), exactamente el caso 2D. Esa proyección y el desnivel vertical dz forman los catetos de un segundo triángulo rectángulo cuya hipotenusa es el segmento espacial real, de modo que d = sqrt(dx² + dy² + dz²).
La calculadora de distancia 3D realiza exactamente este cálculo y nada más. Como cada delta se eleva al cuadrado, el orden de los puntos es irrelevante: la distancia de A a B siempre es igual a la de B a A, y los desniveles negativos se convierten en las mismas longitudes positivas. Como el resultado es la raíz cuadrada de una suma de cuadrados, siempre es no negativo y vale cero exactamente cuando los dos puntos coinciden.
La respuesta devuelve las coordenadas interpretadas y los tres deltas junto a la distancia, de modo que usted puede auditar con precisión qué entradas produjeron qué salida sin volver a derivar nada a mano. Esa trazabilidad importa cuando una distancia alimenta un umbral de colisión, una tolerancia de calidad o un margen de seguridad y alguien pregunta después por qué un caso límite pasó o falló.
Unidades, distancias al cuadrado y robustez numérica
No se aplica ninguna conversión ni hace falta, lo que también significa que es su responsabilidad dar las seis coordenadas en la misma unidad antes de llamar. Conviene conocer dos detalles de implementación.
Primero, la distancia al cuadrado dx² + dy² + dz² se devuelve junto a la distancia: cuando solo necesita ordenar candidatos por cercanía —el dron más próximo, el sensor más cercano, el vértice más lejano— comparar distancias al cuadrado evita por completo la raíz cuadrada y es el truco habitual en los bucles de vecino más cercano sobre grandes nubes de puntos.
Segundo, la raíz cuadrada se toma con Math.hypot en lugar de sumar ingenuamente los cuadrados, de modo que diferencias de coordenadas cercanas a 10¹⁵⁴ no desborden a Infinity camino a un resultado perfectamente finito, y diferencias diminutas cerca de 10⁻¹⁵⁴ no se hundan a cero. Las salidas se redondean a doce cifras decimales significativas, lo que mantiene las respuestas estables y comparables entre máquinas y ejecuciones sin sacrificar ninguna precisión que una medición física pudiera justificar.
Qué puede hacer con ella
Comprobaciones de proximidad y colisión en motores 3D
Mida la separación entre objetos, waypoints o agentes en juegos y simulaciones, disparando eventos cuando la distancia cruza un umbral.
Vecino más cercano en nubes de puntos
Ordene las distancias al cuadrado desde un punto de consulta a sensores, activos o muestras LiDAR y elija el más cercano sin pagar raíces cuadradas innecesarias.
Márgenes y tolerancias de ingeniería
Verifique que dos puntos de montaje, cables o componentes de un modelo CAD o BIM mantienen la separación mínima o máxima requerida.
Preguntas frecuentes
¿Cuánto cuesta?
Además, es gratis ejecutarlo en su navegador en esta página.
¿Qué fórmula utiliza?
La distancia euclidiana en el espacio: d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²), calculada con Math.hypot para mayor robustez numérica.
¿En qué unidades está el resultado?
En la misma unidad que sus coordenadas. Si x, y y z son metros, la distancia es en metros; no se aplica ninguna conversión de unidades.
¿Por qué se devuelve también la distancia al cuadrado?
Porque comparar distancias al cuadrado es más barato cuando solo necesita ordenar candidatos por cercanía: la raíz cuadrada es innecesaria para ordenar.
¿Importa el orden en que escribo los dos puntos?
No. Cada diferencia se eleva al cuadrado antes de sumarse, así que la distancia de A a B es siempre la misma que de B a A, y una diferencia negativa cuenta igual que una positiva.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"x1": 1.5,
"y1": 2.5,
"z1": 3.5,
"x2": 4.5,
"y2": 6.5,
"z2": 8.5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.distance_3d",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La API de distancia 3D calcula la distancia euclidiana entre dos puntos del espacio tridimensional a partir de sus coordenadas x, y y z: la longitud en línea recta del segmento que une (x1, y1, z1) y (x2, y2, z2), dada por d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²).
Unidades, distancias al cuadrado y robustez numérica
El endpoint es deliberadamente agnóstico de las unidades: coordenadas en metros producen una distancia en metros, vóxeles producen vóxeles y las unidades de un modelo CAD producen unidades del modelo.
Validación, errores y cómo integrarla
El contrato es estricto a propósito: cada una de las seis coordenadas debe ser un número finito. Las cadenas numéricas como '4.5' se aceptan y se convierten, porque los datos de formularios y las query strings llegan como texto en el mundo real, pero la conversión es exacta: todo lo que no se analiza por completo como número se rechaza en lugar de truncarse en silencio. Un campo ausente, un null, una cadena vacía, un booleano, un array, una etiqueta no numérica como 'up', NaN o ±Infinity producen el mismo resultado: un error invalid_input limpio que nombra el campo infractor, y sin cargo, ya que los errores del cliente nunca se facturan. La integración es trivial: envíe por POST un objeto JSON con x1, y1, z1, x2, y2 y z2, lea el campo distance de la respuesta y maneje el código de error documentado en lugar de analizar mensajes. Si sus datos son genuinamente bidimensionales, fije ambas coordenadas z al mismo valor o use el endpoint 2D dedicado, que solo necesita cuatro números. El mismo código que se ejecuta en nuestro edge corre gratis en su navegador en esta página, así que puede prototipar con números reales antes de conectar la API a su pipeline, y solo paga los $0.002 publicados por solicitud cuando la automatiza.
Preguntas técnicas
¿Qué ocurre si falta una coordenada o no es un número?
Recibe un error invalid_input que nombra el campo, y la solicitud no se factura. NaN e Infinity también se rechazan.
¿Puedo usarla para puntos 2D?
Sí: dé a ambos puntos la misma coordenada z y la fórmula se reduce al caso 2D, aunque el endpoint 2D dedicado necesita menos campos.