Angles intérieurs d'un polygone à partir de coordonnées
Ce calculateur reçoit les coordonnées cartésiennes ordonnées d'un polygone simple et détermine son angle intérieur à chaque sommet.
Lancer gratuitement
Il convient aux polygones convexes comme concaves : un sommet rentrant peut donc produire correctement un angle supérieur à 180 degrés. La réponse conserve l'ordre des sommets, exprime toutes les mesures en degrés, indique le sens de parcours et fournit la somme théorique. Vous pouvez ainsi contrôler une géométrie, valider des coordonnées et automatiser des traitements reproductibles.
Saisissez un contour polygonal ordonné
Fournissez au moins trois sommets sous forme d'objets possédant des coordonnées numériques finies x et y. Leur ordre doit suivre le contour du polygone sans interruption, dans le sens horaire ou antihoraire. Ne répétez pas le premier point à la fin : le calculateur ferme automatiquement la dernière arête. Les coordonnées décrivent un plan cartésien ; elles peuvent représenter des unités de dessin, des mètres dans un système projeté, des pixels ou toute autre échelle linéaire cohérente. Elles ne sont pas interprétées comme des longitudes et latitudes sur une Terre courbe. Une entrée valide doit former un polygone simple : deux sommets voisins ne peuvent pas être identiques, aucun point ne peut être répété, l'aire délimitée doit être non nulle et les arêtes non adjacentes ne doivent ni se croiser ni se toucher. Ces règles évitent toute ambiguïté lorsque le contour se replie sur lui-même. En cas d'échec, la réponse précise le problème lié au sommet ou à l'arête concernée au lieu de fournir des mesures trompeuses.
Interprétez les angles convexes, concaves et rentrants
Pour chaque sommet, le calculateur construit des vecteurs reliant le point courant à ses voisins précédent et suivant. Leur produit scalaire et leur produit vectoriel déterminent l'angle local et le sens du virage. L'aire signée du polygone indique si l'ensemble du contour est parcouru dans le sens horaire ou antihoraire. Le rapprochement de ces deux informations permet de distinguer un sommet convexe ordinaire d'un sommet concave dont l'intérieur correspond à l'angle rentrant. Ainsi, un rectangle convexe renvoie quatre valeurs de 90 degrés, tandis qu'une encoche peut dépasser 180 degrés. Le tableau angles_deg respecte exactement l'ordre des sommets saisis : l'indice zéro désigne toujours le premier point fourni. Les résultats sont arrondis à dix décimales afin d'éliminer les résidus de virgule flottante sans sacrifier la précision utile. Des points colinéaires peuvent donner 180 degrés s'ils ne créent pas de chevauchement invalide. Le champ winding décrit uniquement l'orientation du parcours.
Vérifiez la somme et exploitez le résultat correctement
Tout polygone simple comportant n sommets possède une somme d'angles intérieurs égale à (n − 2) × 180 degrés, qu'il soit convexe ou concave. Le champ total_sum_deg fournit directement cet invariant, tandis que vertex_count donne n. Cette somme offre un contrôle rapide lors de l'importation de géométries provenant d'un export CAD, de contours numérisés, d'exercices pédagogiques ou d'applications de dessin. Les valeurs individuelles arrondies peuvent différer très légèrement d'une somme en virgule flottante calculée séparément ; considérez donc total_sum_deg comme le total théorique de référence au lieu d'exiger une égalité bit à bit entre les valeurs affichées. La capacité est déterministe : les mêmes coordonnées ordonnées produisent toujours le même JSON, sans réseau, hasard ni heure courante. Vous pouvez l'exécuter gratuitement dans votre navigateur ou appeler l'API pour $0.002 par requête dans un traitement automatisé. Conservez un seul référentiel plan et projetez les données géographiques lorsque la courbure influence la géométrie recherchée.
Cas d’usage
Valider un outil de dessin
Comparez les angles des sommets et la somme théorique après la modification d'un tracé polygonal ordonné.
Examiner une géométrie concave
Repérez les angles rentrants sans supposer que chaque polygone est convexe ou régulier.
Corriger des exercices de coordonnées
Produisez des angles déterministes par sommet et la somme attendue pour des polygones fournis sous forme de listes de coordonnées.
Questions fréquentes
Le calcul fonctionne-t-il avec les polygones concaves ?
Oui. Il utilise le sens du contour et le virage local pour renvoyer les angles intérieurs supérieurs à 180 degrés lorsqu'il le faut.
Faut-il répéter le premier sommet à la fin ?
Non. L'arête de fermeture est implicite et la répétition du premier sommet est rejetée comme doublon.
Puis-je utiliser directement la latitude et la longitude ?
Seulement si une approximation plane est acceptable. Pour une géométrie géographique rigoureuse, projetez-les d'abord dans un système cartésien approprié.
Pourquoi mon polygone a-t-il été rejeté ?
Les causes habituelles sont moins de trois sommets, des coordonnées non finies, des points en double, une arête nulle, une aire nulle ou le croisement d'arêtes non adjacentes.
Quel est le prix d'une requête API ?
Chaque requête API coûte $0.002. Le même calcul déterministe est également disponible dans le navigateur.
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/geo/polygon-interior-angles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vertices":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}'const res = await fetch("https://api.kit.forhosting.com/geo/polygon-interior-angles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/polygon-interior-angles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/polygon-interior-angles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vertices":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vertices":[{"x":0,"y":0},{"x":4,"y":0},{"x":4,"y":3},{"x":0,"y":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/polygon-interior-angles", 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
{
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.polygon_interior_angles",
"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. |