Intersection de deux cercles : points à partir des centres et rayons
Trouvez où deux cercles se croisent : deux cercles de rayon 5 centrés en (0, 0) et (8, 0) se coupent en (4, 3) et (4, -3). S'ils se touchent, vous obtenez un point ; sinon, un message clair. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- X1
- 0
- Y1
- 0
- R1
- 5
- X2
- 8
- Y2
- 0
- R2
- 5
- Quantité
- 2
- Rapport
- intersect
- D
- 8
Étant donnés deux cercles du plan cartésien, leur intersection est l'ensemble des points qui appartiennent aux deux circonférences à la fois.
Comment deux cercles se rencontrent dans le plan
Soit d la distance euclidienne entre les centres. Les manuels de géométrie classifient la configuration en comparant d à la somme et à la différence absolue des rayons. Lorsque d est strictement inférieure à la différence absolue des rayons, le plus petit cercle se trouve entièrement à l'intérieur du plus grand sans le toucher.
Lorsque d égale la somme, ils se touchent extérieurement en un point unique ; lorsque d égale la différence absolue, ils se touchent intérieurement en un point unique. Lorsque la différence absolue est strictement inférieure à d et que d est strictement inférieure à la somme, les cercles se croisent en exactement deux points symétriques par rapport à la droite des centres.
Décaler ce pied de plus ou moins h dans la direction perpendiculaire à la droite des centres donne les deux points d'intersection, ou un point unique lorsque h vaut zéro. Comme le calcul n'utilise que de l'arithmétique et une racine carrée après les vérifications géométriques, il est déterministe, en O(1), et exempt de solveurs itératifs ou de bibliothèques trigonométriques. Des centres confondus avec des rayons égaux admettraient une infinité de solutions et sont rejetés plutôt qu'approximés.
Où l'intersection cercle–cercle apparaît dans le travail réel
Les cours de géométrie analytique du lycée et de l'université demandent constamment de trouver les points communs à deux cercles donnés ; un calculateur fiable avec une vérification stricte de la configuration accélère la correction des devoirs et élimine les erreurs de tableur où l'on oublie le cas de contenance ou l'on se trompe de signe dans le décalage perpendiculaire.
Les croquis de multilatération et l'arpentage simple placent une station en intersectant deux arcs de distance depuis des points de contrôle connus ; renvoyer les deux candidats dans un ordre déterministe permet aux opérateurs de choisir le côté physiquement significatif sans refaire l'algèbre à la main. Si vous avez ensuite besoin de l'intersection cercle–droite, d'intersections de sphères en trois dimensions ou d'ajustement de cercle à partir d'échantillons de points, traitez-les comme des intentions de recherche distinctes plutôt que de surcharger cette page dédiée aux deux cercles.
Cas d’usage
Vérification de devoirs et d'examens
Calculez les points d'intersection réels de deux cercles à partir des centres et rayons, ou échouez clairement lorsqu'ils ne se rencontrent pas.
Croquis d'arpentage et de multilatération
Intersectez deux arcs de distance depuis des stations connues pour retrouver des positions candidates avec un ordre de points déterministe.
Aides aux contraintes pour CAO et jeux
Résolvez deux contraintes circulaires ou les points de contact de hitboxes circulaires sans réimplémenter les mathématiques de l'axe radical dans chaque outil.
Questions fréquentes
Combien cela coûte-t-il ?
L'outil du navigateur est gratuit et s'exécute localement.
Comment savoir si deux cercles se coupent ?
Comparez la distance entre les centres à la somme et à la différence des rayons. Strictement comprise entre les deux, elle donne deux points d'intersection ; égale à l'une d'elles, un seul point de contact, comme pour deux cercles de rayon 5 distants de 10.
Que se passe-t-il si les cercles ne se rencontrent pas ?
S'ils sont trop éloignés, ou si l'un se trouve dans l'autre sans le toucher, le calculateur l'indique par un message clair au lieu de renvoyer une liste vide qui ressemblerait à une réponse.
Et si les deux cercles sont identiques ?
Deux cercles de même centre et de même rayon ont tous leurs points en commun : il n'existe donc pas de réponse finie. Ce cas est refusé plutôt qu'approché.
Peut-on situer un point à partir de deux distances ?
Oui. Tracez un cercle autour de chaque station connue avec la distance mesurée pour rayon ; l'intersection donne les positions possibles, dans un ordre fixe pour que vous choisissiez le bon côté.
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/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)Exemple de requête
{
"x1": 0,
"y1": 0,
"r1": 5,
"x2": 8,
"y2": 0,
"r2": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.two_circles_intersection",
"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
Les champs manquants, les rayons non positifs, les cercles séparés et la contenance stricte sans contact sont rejetés avec une erreur invalid_input claire plutôt qu'une liste vide qui ressemblerait à une résolution réussie sans points. Aucun appel réseau, aucun échantillonnage aléatoire et aucune surprise de virgule flottante au-delà de l'arithmétique IEEE-754 ordinaire sur les six nombres que vous fournissez.
Comment deux cercles se rencontrent dans le plan
De très grandes coordonnées peuvent encore dépasser la plage du double IEEE-754 ; les intermédiaires non finis échouent avec un message clair au lieu de renvoyer Infinity dans le JSON.
Ce que vous envoyez et ce que vous recevez
Après l'analyse, le service calcule la distance d entre les centres, la compare à la somme et à la différence absolue des rayons, puis soit échoue avec un message explicite de séparation ou de contenance, soit construit le pied de l'axe radical et la demi-corde. Vérifications d'exemple : des centres en (0, 0) et (8, 0) avec des rayons égaux à cinq donnent deux points proches de (4, plus ou moins trois) ; des rayons égaux à cinq avec des centres distants de dix unités sont tangents extérieurement au point milieu ; des centres bien plus éloignés que la somme des rayons échouent en signalant des cercles séparés. Utilisez l'outil gratuit du navigateur pour des vérifications rapides, puis appelez le contrat identique depuis des scripts lorsque vous avez besoin d'une évaluation en masse sans réimplémenter les validations numériques dans chaque langage. Des alias courts comme cx1, cy1, radius1, center1_x et les noms correspondants du second cercle sont acceptés, afin que les libellés des formulaires restent compacts sans gestionnaires divergents. Les champs manquants, les chaînes vides, le texte non numérique, NaN, Infinity et les rayons non positifs sont rejetés avec invalid_input et ne sont pas facturés. En cas de succès, la réponse JSON renvoie points comme un tableau d'un ou deux objets avec x et y arrondis pour une sérialisation stable, count égal à la longueur du tableau, relation fixé à intersect, tangent_external ou tangent_internal, la distance d, l'écho des six entrées normalisées et method fixé à two_circles_radical_axis, afin que les journaux et les interfaces pédagogiques documentent l'algorithme. Le contrat est un JSON stable, adapté aux tests unitaires, aux correcteurs de devoirs et aux pipelines par lots qui associent des paires de cercles à des points d'intersection. Le tarif de l'API est la base publiée de $0.002 par élément réussi.
Où l'intersection cercle–cercle apparaît dans le travail réel
Comme cette capacité est un moteur de parse pur, une validation échouée ne consomme pas de solde et les exécutions réussies restent à $0.002 par élément.
Questions techniques
Quelle formule ce calculateur utilise-t-il ?
La construction de l'axe radical : distance d entre les centres, décalage a = (r1² − r2² + d²)/(2d), demi-corde h = √(r1² − a²), puis décalages perpendiculaires ±. La réponse inclut method : "two_circles_radical_axis".
Que se passe-t-il si les cercles ne se coupent pas ?
S'ils sont séparés (d supérieure à la somme des rayons) ou si l'un contient entièrement l'autre sans contact (d inférieure à |r1 − r2|), la requête échoue avec invalid_input et un message décrivant la configuration.
Les cercles tangents comptent-ils comme un succès ?
Oui. La tangence externe et interne renvoie un point unique avec relation tangent_external ou tangent_internal.
Et si les deux cercles sont identiques ?
Même centre et rayons égaux admettent une infinité de points d'intersection ; ce cas est rejeté avec invalid_input plutôt que d'inventer une liste finie.