Calculateur de distance 3D
Entre (1,5 ; 2,5 ; 3,5) et (4,5 ; 6,5 ; 8,5), les écarts valent 3, 4 et 5, donc la distance en ligne droite est de 7,07106781187. Saisissez deux points quelconques de l'espace et obtenez cette longueur avec l'écart sur chaque axe. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- X1
- 1,5
- Y1
- 2,5
- Z1
- 3,5
- X2
- 4,5
- Y2
- 6,5
- Z2
- 8,5
- Dx
- 3
- Dy
- 4
- Dz
- 5
- Distance
- 7,0710678119
Vous envoyez six nombres et vous recevez la distance, les trois écarts selon les axes et la distance au carré, dans la même unité que celle des coordonnées mesurées. C'est la généralisation naturelle du théorème de Pythagore à l'espace — la réponse à la question « à quelle distance se trouvent ces deux objets » dans des volumes, des scènes et des modèles physiques — fournie en un seul appel déterministe, avec une erreur explicite dès qu'une coordonnée manque ou n'est pas un nombre fini.
De Pythagore aux trois dimensions
La formule de la distance 3D, c'est le théorème de Pythagore appliqué deux fois. On commence par écraser la dimension z : la projection de votre segment sur le plan xy a pour longueur sqrt(dx² + dy²), exactement le cas en 2D. Cette projection et l'écart vertical dz forment les côtés d'un second triangle rectangle dont l'hypoténuse est le véritable segment spatial, d'où d = sqrt(dx² + dy² + dz²).
Le calculateur de distance 3d effectue précisément ce calcul, et rien d'autre. Comme chaque écart est élevé au carré, l'ordre des points n'a aucune importance : la distance de A à B est toujours égale à celle de B à A, et les écarts négatifs se ramènent aux mêmes longueurs positives. Comme le résultat est la racine carrée d'une somme de carrés, il est toujours positif ou nul, et il vaut zéro exactement lorsque les deux points coïncident.
La réponse renvoie les coordonnées analysées et les trois écarts à côté de la distance, ce qui vous permet de vérifier précisément quelles entrées ont produit quel résultat sans rien recalculer à la main. Cette traçabilité compte lorsqu'une distance alimente un seuil de collision, une tolérance qualité ou une marge de sécurité et que quelqu'un demande plus tard pourquoi un cas limite est passé ou a échoué.
Unités, distances au carré et robustesse numérique
Le point d'accès est volontairement indifférent aux unités : des coordonnées en mètres donnent une distance en mètres, des voxels donnent des voxels, et des unités de modèle CAD donnent des unités de modèle. Aucune conversion n'est appliquée et aucune n'est nécessaire, ce qui signifie aussi qu'il vous incombe d'exprimer les six coordonnées dans la même unité avant l'appel. Deux détails d'implémentation méritent d'être connus.
Premièrement, la distance au carré dx² + dy² + dz² est renvoyée en plus de la distance elle-même : lorsque vous devez seulement classer des candidats par proximité — le drone le plus proche, le capteur le plus proche, le sommet le plus éloigné — comparer les distances au carré évite entièrement la racine carrée, une astuce classique dans les boucles de recherche du plus proche voisin sur de grands nuages de points.
Deuxièmement, la racine carrée est calculée avec Math.hypot plutôt qu'en sommant naïvement les carrés, de sorte que des écarts de coordonnées proches de 10¹⁵⁴ ne débordent pas vers Infinity en route vers une réponse parfaitement finie, et que des écarts minuscules proches de 10⁻¹⁵⁴ ne s'effondrent pas à zéro. Les résultats sont arrondis à douze chiffres décimaux significatifs, ce qui garantit des réponses stables et comparables d'une machine et d'une exécution à l'autre, sans sacrifier la moindre précision qu'une mesure physique pourrait justifier.
Validation, erreurs et intégration
Le contrat est strict à dessein : chacune des six coordonnées doit être un nombre fini. Les chaînes numériques comme « 4.5 » sont acceptées et converties, car les données de formulaires et les paramètres d'URL arrivent en texte dans le monde réel, mais la conversion est exacte : tout ce qui ne s'analyse pas intégralement comme un nombre est rejeté plutôt que tronqué silencieusement.
Si vos données sont véritablement bidimensionnelles, fixez les deux coordonnées z à la même valeur ou utilisez le point d'accès 2D dédié, qui ne demande que quatre nombres.
Cas d’usage
Contrôles de proximité et de collision dans les moteurs 3D
Mesurez l'écart entre objets, points de passage ou agents dans les jeux et les simulations, et déclenchez des événements lorsque la distance franchit un seuil.
Plus proche voisin dans les nuages de points
Classez les distances au carré entre un point de requête et des capteurs, des ressources ou des échantillons LiDAR, et retenez le plus proche sans payer de racines carrées inutiles.
Jeux et tolérances en ingénierie
Vérifiez que deux points de fixation, câbles ou composants d'un modèle CAD ou BIM respectent l'écart minimal ou maximal requis.
Questions fréquentes
Combien cela coûte-t-il ?
L'exécution est également gratuite dans votre navigateur sur cette page.
Quelle formule est utilisée ?
La distance euclidienne dans l'espace : d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²), calculée avec Math.hypot pour la robustesse numérique.
Dans quelle unité le résultat est-il exprimé ?
Dans la même unité que vos coordonnées. Si x, y et z sont en mètres, la distance est en mètres ; aucune conversion d'unité n'est appliquée.
Puis-je l'utiliser pour des points en 2D ?
Oui — attribuez la même coordonnée z aux deux points et la formule se ramène au cas 2D, même si le point d'accès 2D dédié demande moins de champs.
Pourquoi la distance au carré est-elle aussi renvoyée ?
Parce que comparer des distances au carré coûte moins cher lorsque vous devez seulement classer des candidats par proximité — la racine carrée est superflue pour établir un ordre.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"x1": 1.5,
"y1": 2.5,
"z1": 3.5,
"x2": 4.5,
"y2": 6.5,
"z2": 8.5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.distance_3d",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
L'API de distance 3D calcule la distance euclidienne entre deux points de l'espace tridimensionnel à partir de leurs coordonnées x, y et z : la longueur en ligne droite du segment reliant (x1, y1, z1) et (x2, y2, z2), donnée par d = sqrt((x2 - x1)² + (y2 - y1)² + (z2 - z1)²).
Validation, erreurs et intégration
Un champ manquant, un null, une chaîne vide, un booléen, un tableau, une étiquette non numérique comme « up », NaN ou ±Infinity produisent tous le même résultat — une erreur invalid_input claire nommant le champ fautif, et aucune facturation, car les erreurs côté client ne sont jamais facturées. L'intégration est triviale : envoyez en POST un objet JSON avec x1, y1, z1, x2, y2 et z2, lisez le champ distance dans la réponse, et traitez le code d'erreur documenté au lieu d'analyser des messages. Le même code qui tourne sur notre edge s'exécute gratuitement dans votre navigateur sur cette page : vous pouvez donc prototyper avec des valeurs réelles avant de brancher l'API dans votre pipeline, et vous ne payez le tarif publié de $0.002 par requête que lorsque vous l'automatisez.
Questions techniques
Que se passe-t-il si une coordonnée manque ou n'est pas un nombre ?
Vous recevez une erreur invalid_input nommant le champ concerné, et la requête n'est pas facturée. NaN et Infinity sont également rejetés.