Solveur de triangle ABC : côtés et angles à partir de toute combinaison
Le solveur de triangles ABC accepte toute combinaison de côtés a, b, c et d'angles intérieurs A, B, C qui détermine un triangle, et renvoie les côtés et angles que vous n'avez pas fournis.
Lancer gratuitement
Il applique la loi des cosinus et la loi des sinus dans le bon ordre pour chaque cas — trois côtés, deux côtés avec l'angle compris, deux angles avec un côté quelconque, ou deux côtés avec un angle non compris — et il refuse les entrées qui ne décrivent aucun triangle, plusieurs triangles, ou des valeurs qui se contredisent. Les angles sont fournis et renvoyés en degrés ; chaque résultat est arrondi à dix décimales stables, de sorte qu'une même entrée produit toujours la même sortie.
Un point d'accès unique pour toute combinaison résoluble
La trigonométrie scolaire découpe la résolution des triangles en cinq recettes distinctes — SSS, SAS, ASA, AAS et le délicat cas SSA — chacune avec son propre formulaire. Ce solveur de triangles réunit les cinq en une seule requête : vous envoyez les champs que vous connaissez parmi side_a, side_b, side_c, angle_a, angle_b et angle_c, et le solveur détermine lui-même quelle recette s'applique. Trois côtés connus déclenchent la loi des cosinus ; deux côtés avec l'angle compris utilisent d'abord la règle des cosinus puis celle des sinus ; un côté associé à deux angles relève directement de la loi des sinus. Vous n'avez jamais à nommer le cas vous-même, et la réponse contient toujours un champ <em>method</em> qui consigne le chemin emprunté, ce qui est précieux pour journaliser ou mettre en cache les résultats. Grâce à cette interface uniforme, le même code client résout une pente de toit, un levé topographique et un exercice scolaire sans aucun branchement selon la combinaison.
La cohérence est vérifiée, pas présumée
Les mesures réelles se contredisent. Si vous envoyez plus que les trois valeurs strictement nécessaires à un triangle — par exemple les trois côtés plus un angle mesuré sur le terrain — le solveur n'ignore pas silencieusement le surplus. Il résout d'abord le triangle à partir d'un sous-ensemble déterminant, puis vérifie chaque valeur restante contre cette solution avec une tolérance serrée. Une valeur qui contredit les autres produit une erreur explicite nommant le champ, au lieu d'un triangle d'apparence plausible qui ne satisferait qu'une partie de votre entrée. Cette discipline intercepte les échecs classiques avant tout calcul : trois angles dont la somme diffère de 180 degrés, trois côtés qui violent l'inégalité triangulaire, un couple SSA dont le côté opposé à l'angle connu est trop court, et le cas ambigu de SSA où deux triangles réellement différents conviennent aux données. Dans cette dernière situation, le solveur le signale et demande une mesure supplémentaire plutôt que de désigner un vainqueur que vous n'avez pas choisi.
Comment l'intégrer
Envoyez un objet JSON avec les champs connus sous forme de nombres — les chaînes numériques sont aussi acceptées — et lisez en retour le triangle complété : les trois côtés, les trois angles en degrés, l'unité d'angle et la méthode employée. Les éléments manquants sont calculés ; ceux que vous avez fournis sont renvoyés tels quels, de sorte que la réponse constitue un enregistrement complet et autonome du triangle. Tout est calculé de manière déterministe en arithmétique double précision et arrondi à dix décimales, ce qui rend la sortie sûre à comparer octet par octet dans les tests et les caches. La capacité s'exécute sur notre réseau périphérique mondial sans rien persister, et exactement le même module fonctionne gratuitement dans votre navigateur sur cette page : vous pouvez prototyper un calcul à la main et ne payer $0.002 par requête que lorsque vous l'automatisez. Il n'y a aucun supplément à l'unité : une requête en entrée, un triangle résolu en sortie, $0.002.
Cas d’usage
Vérifier un levé de terrain
Envoyez les côtés et angles mesurés ensemble ; toute valeur qui contredit les autres est signalée au lieu d'être noyée dans une moyenne.
Dimensionner une toiture ou un contreventement
Deux côtés et l'angle compris donnent le troisième côté et les angles restants pour une liste de découpe en un seul appel.
Corriger des exercices de géométrie
Comparez le triangle complété par un élève à la sortie stable et arrondie du solveur pour les problèmes SSS, SAS, ASA et AAS.
Questions fréquentes
Combien cela coûte-t-il ?
$0.002 par requête. L'exécution est également gratuite dans votre navigateur sur cette page.
Quelles combinaisons de valeurs puis-je envoyer ?
Toutes celles qui déterminent un triangle : trois côtés, deux côtés avec l'angle compris, deux angles avec un côté quelconque, ou deux côtés avec un angle non compris. Vous pouvez aussi envoyer des valeurs supplémentaires ; leur cohérence est vérifiée.
Que se passe-t-il dans le cas ambigu SSA ?
Lorsque deux triangles différents correspondent à deux côtés et un angle non compris, la requête est rejetée avec une erreur demandant un côté ou un angle supplémentaire, plutôt que de deviner.
Les angles sont-ils en degrés ou en radians ?
En degrés, en entrée comme en sortie. Les angles intérieurs doivent être positifs et inférieurs à 180.
Pourquoi ai-je reçu une erreur « entrée incohérente » ?
Parce que l'une des valeurs envoyées contredit, au-delà d'une petite tolérance, le triangle défini par les autres — par exemple un angle incompatible avec trois côtés mesurés. Revérifiez cette mesure.
Peut-on résoudre un triangle à partir de trois angles seulement ?
Non. Les angles fixent la forme mais pas la taille : au moins un côté est donc requis, et le solveur renvoie une erreur qui l'explique.
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/abc-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"side_a":3,"side_b":4}'const res = await fetch("https://api.kit.forhosting.com/math/abc-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"side_a": 3,
"side_b": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/abc-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"side_a": 3,
"side_b": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/abc-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"side_a":3,"side_b":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"side_a":3,"side_b":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/abc-triangle", 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
{
"side_a": 3,
"side_b": 4
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.abc_triangle",
"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. |