Angoli interni di un poligono dalle coordinate
Questo calcolatore riceve le coordinate cartesiane ordinate di un poligono semplice e determina l'angolo interno in ogni vertice.
Esegui gratis nel browser
Funziona sia con poligoni convessi sia con poligoni concavi, quindi un vertice rientrante può produrre correttamente un angolo riflesso maggiore di 180 gradi. La risposta mantiene l'ordine dei vertici, esprime tutte le misure in gradi, indica il verso di percorrenza e include la somma teorica. Lei può così controllare geometrie, convalidare coordinate e realizzare flussi automatizzati riproducibili.
Inserisca un contorno poligonale ordinato
Fornisca almeno tre vertici come oggetti con coordinate numeriche finite x e y. L'ordine deve seguire il bordo del poligono senza interruzioni, in senso orario oppure antiorario. Non ripeta il primo punto alla fine, perché il calcolatore chiude automaticamente l'ultimo lato. Le coordinate descrivono un piano cartesiano e possono rappresentare unità di disegno, metri in un sistema proiettato, pixel o qualsiasi altra scala lineare coerente. Non vengono interpretate come longitudine e latitudine sulla superficie curva della Terra. Un input valido deve formare un poligono semplice: i vertici adiacenti non possono coincidere, nessun punto può comparire due volte, l'area racchiusa deve essere diversa da zero e i lati non adiacenti non possono incrociarsi né toccarsi. Queste condizioni evitano risultati ambigui quando il contorno si ripiega su sé stesso. Se la convalida non riesce, la risposta segnala il problema relativo al vertice o al lato interessato, invece di restituire misure apparentemente credibili per una geometria non valida.
Interpreti risultati convessi, concavi e riflessi
Per ogni vertice, il calcolatore costruisce vettori dal punto corrente verso i punti adiacenti precedente e successivo. Il prodotto scalare e il prodotto vettoriale determinano l'angolo locale e il verso della svolta. L'area con segno del poligono stabilisce se l'intero contorno procede in senso orario o antiorario. Combinando la svolta locale con tale orientamento si distingue un normale vertice convesso da un vertice concavo, il cui interno corrisponde all'angolo riflesso. Di conseguenza, un rettangolo convesso restituisce quattro valori di 90 gradi, mentre una rientranza può superare i 180 gradi. L'array angles_deg segue esattamente l'ordine dei vertici di input, pertanto l'indice zero descrive sempre il primo punto fornito. I risultati vengono arrotondati a dieci cifre decimali per eliminare code di virgola mobile senza perdere precisione utile. Punti collineari possono produrre 180 gradi se non creano una sovrapposizione non valida. Il campo winding descrive soltanto l'orientamento del percorso.
Verifichi la somma e utilizzi correttamente l'output
Ogni poligono semplice con n vertici ha una somma degli angoli interni pari a (n − 2) × 180 gradi, indipendentemente dal fatto che sia convesso o concavo. Il campo total_sum_deg riporta direttamente questa proprietà, mentre vertex_count fornisce n. La somma è un rapido controllo di coerenza quando si importano geometrie da esportazioni CAD, contorni digitalizzati, esercizi didattici o applicazioni di disegno. I singoli valori arrotondati possono differire lievemente da una somma in virgola mobile calcolata separatamente; usi quindi total_sum_deg come totale teorico autorevole, anziché richiedere un'uguaglianza bit per bit tra i valori visualizzati. La capacità è deterministica: le stesse coordinate ordinate producono sempre lo stesso JSON, senza rete, casualità o ora corrente. Lei può eseguirla gratuitamente nel browser oppure chiamare l'API al costo di $0.002 per richiesta quando integra il calcolo in una pipeline. Mantenga tutte le coordinate in un unico riferimento piano e proietti prima i dati geografici se la curvatura può influire sulla geometria desiderata.
Casi d'uso
Convalidare uno strumento di disegno
Confronti le misure dei vertici e la somma teorica dopo la modifica di un tracciato poligonale ordinato.
Esaminare una geometria concava
Individui gli angoli riflessi nei vertici rientranti senza presumere che ogni poligono sia convesso o regolare.
Correggere esercizi sulle coordinate
Generi angoli deterministici per ogni vertice e la somma prevista per poligoni forniti come elenchi di coordinate.
Domande frequenti
Il calcolo funziona con i poligoni concavi?
Sì. Utilizza il verso del contorno e la svolta locale per restituire angoli interni riflessi maggiori di 180 gradi quando necessario.
Devo ripetere il primo vertice alla fine?
No. Il lato di chiusura è implicito e la ripetizione del primo vertice viene rifiutata come duplicato.
Posso usare direttamente latitudine e longitudine?
Solo quando è accettabile trattarle come coordinate piane approssimate. Per una geometria geografica rigorosa, le proietti prima in un sistema cartesiano adatto.
Perché il mio poligono è stato rifiutato?
Le cause comuni sono meno di tre vertici, coordinate non finite, punti duplicati, lati di lunghezza zero, area nulla o incroci tra lati non adiacenti.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Lo stesso calcolo deterministico è disponibile anche nel browser.
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/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)Esempio di richiesta
{
"vertices": [
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
},
{
"x": 4,
"y": 3
},
{
"x": 0,
"y": 3
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.polygon_interior_angles",
"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. |