Calcolatrice di distanza 3D
Tra (1,5; 2,5; 3,5) e (4,5; 6,5; 8,5) gli scarti sono 3, 4 e 5, quindi la distanza in linea retta è 7,07106781187. Inserisca due punti qualsiasi nello spazio e ottenga questa lunghezza insieme allo scarto su ciascun asse. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- X1
- 1,5
- Y1
- 2,5
- Z1
- 3,5
- X2
- 4,5
- Y2
- 6,5
- Z2
- 8,5
- Dx
- 3
- Dy
- 4
- Dz
- 5
- Distanza
- 7,0710678119
Lei invia sei numeri e riceve la distanza, i tre scarti sugli assi e la distanza al quadrato, nella stessa unità in cui ha misurato le coordinate. È la generalizzazione naturale del teorema di Pitagora allo spazio — la risposta a «quanto distano questi due oggetti» in volumi, scene e modelli fisici — fornita come un'unica chiamata deterministica, con un errore esplicito ogni volta che una coordinata manca o non è un numero finito.
Da Pitagora alle tre dimensioni
La formula della distanza 3D è il teorema di Pitagora applicato due volte. Prima si riduce la dimensione z: la proiezione del segmento sul piano xy ha lunghezza sqrt(dx² + dy²), esattamente il caso 2D. Tale proiezione e il dislivello verticale dz formano i cateti di un secondo triangolo rettangolo la cui ipotenusa è il vero segmento spaziale, quindi d = sqrt(dx² + dy² + dz²).
Il calcolatore di distanza 3D esegue esattamente questo calcolo e nient'altro. Poiché ogni scarto è elevato al quadrato, l'ordine dei punti è irrilevante: la distanza da A a B è sempre uguale alla distanza da B ad A, e gli scarti negativi si riducono alle stesse lunghezze positive dei cateti. Poiché il risultato è una radice quadrata di una somma di quadrati, è sempre non negativo ed è zero esattamente quando i due punti coincidono.
La risposta riporta le coordinate analizzate e i tre scarti accanto alla distanza, così può verificare con precisione quali input hanno prodotto quale output senza ricalcolare nulla a mano. Questa tracciabilità conta quando una distanza alimenta una soglia di collisione, una tolleranza di qualità o un margine di sicurezza e qualcuno in seguito chiede perché un caso limite è passato o è fallito.
Unità, distanze al quadrato e robustezza numerica
Nessuna conversione viene applicata e nessuna è necessaria, il che significa anche che è Sua responsabilità fornire tutte e sei le coordinate nella stessa unità prima della chiamata. Due dettagli implementativi vale la pena conoscere.
Primo, la distanza al quadrato dx² + dy² + dz² viene restituita insieme alla distanza stessa: quando deve solo ordinare i candidati per vicinanza — il drone più vicino, il sensore più prossimo, il vertice più lontano — confrontare le distanze al quadrato evita del tutto la radice quadrata ed è il trucco standard nei cicli di ricerca del vicino più prossimo su grandi nuvole di punti.
Secondo, la radice quadrata è calcolata con Math.hypot anziché sommando ingenuamente i quadrati, così differenze di coordinate vicine a 10¹⁵⁴ non traboccano verso Infinity sulla strada di una risposta perfettamente finita, e differenze minuscole vicine a 10⁻¹⁵⁴ non si annullano. Gli output sono arrotondati a dodici cifre decimali significative, il che mantiene le risposte stabili e confrontabili tra macchine ed esecuzioni senza sacrificare alcuna precisione che una misura fisica possa giustificare.
Casi d'uso
Controlli di prossimità e collisione nei motori 3D
Misuri la separazione tra oggetti, waypoint o agenti in giochi e simulazioni, attivando eventi quando la distanza supera una soglia.
Vicino più prossimo nelle nuvole di punti
Ordini le distanze al quadrato da un punto di interrogazione a sensori, asset o campioni LiDAR e scelga il più vicino senza pagare radici quadrate superflue.
Spazi minimi e tolleranze ingegneristiche
Verifichi che due punti di montaggio, cavi o componenti in un modello CAD o BIM mantengano la separazione minima o massima richiesta.
Domande frequenti
Quanto costa?
È inoltre gratuito nel Suo browser su questa pagina.
Quale formula utilizza?
La distanza euclidea nello spazio: d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²), calcolata con Math.hypot per la robustezza numerica.
In quale unità è il risultato?
Nella stessa unità delle Sue coordinate. Se x, y e z sono metri, la distanza è in metri; nessuna conversione di unità viene applicata.
Perché viene restituita anche la distanza al quadrato?
Perché confrontare le distanze al quadrato è più economico quando deve solo ordinare i candidati per vicinanza — la radice quadrata è superflua per l'ordinamento.
L'ordine dei due punti cambia la distanza?
No. Ogni scarto viene elevato al quadrato prima della somma, quindi la distanza da A a B è sempre uguale a quella da B ad A, e uno scarto negativo conta come uno positivo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"x1": 1.5,
"y1": 2.5,
"z1": 3.5,
"x2": 4.5,
"y2": 6.5,
"z2": 8.5
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.distance_3d",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
L'API di distanza 3D calcola la distanza euclidea tra due punti nello spazio tridimensionale dalle loro coordinate x, y e z: la lunghezza in linea retta del segmento che unisce (x1, y1, z1) e (x2, y2, z2), data da d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²).
Unità, distanze al quadrato e robustezza numerica
L'endpoint è deliberatamente indipendente dalle unità: coordinate in metri producono una distanza in metri, voxel producono voxel e unità di un modello CAD producono unità del modello.
Validazione, errori e come integrarlo
Il contratto è volutamente rigido: ognuna delle sei coordinate deve essere un numero finito. Le stringhe numeriche come '4.5' sono accettate e convertite, perché i dati dei moduli e le query string arrivano come testo nel mondo reale, ma la conversione è esatta: tutto ciò che non si analizza completamente come numero viene rifiutato anziché troncato in silenzio. Un campo mancante, un null, una stringa vuota, un booleano, un array, un'etichetta non numerica come 'up', NaN o ±Infinity producono tutti lo stesso esito — un pulito errore invalid_input che nomina il campo incriminato, e nessun addebito, poiché gli errori del client non vengono mai fatturati. L'integrazione è banale: invii con POST un oggetto JSON con x1, y1, z1, x2, y2 e z2, legga il campo distance dalla risposta e gestisca il codice di errore documentato invece di analizzare messaggi. Se i Suoi dati sono davvero bidimensionali, fissi entrambe le coordinate z allo stesso valore oppure usi l'endpoint 2D dedicato, che richiede solo quattro numeri. Lo stesso codice che gira sul nostro edge gira gratis nel Suo browser su questa pagina, così può prototipare con numeri reali prima di collegare l'API alla Sua pipeline, e paga il $0.002 pubblicato per richiesta solo quando la automatizza.
Domande tecniche
Cosa succede se una coordinata manca o non è un numero?
Riceve un errore invalid_input che nomina il campo, e la richiesta non viene fatturata. Anche NaN e Infinity vengono rifiutati.
Posso usarlo per punti 2D?
Sì — assegni a entrambi i punti la stessa coordinata z e la formula si riduce al caso 2D, anche se l'endpoint 2D dedicato richiede meno campi.