ForHosting KIT · Viaggi e geografia

Test di convessità del poligono

Il rettangolo (0, 0), (4, 0), (4, 3), (0, 3) è convesso: ogni angolo gira dallo stesso lato, in senso antiorario. La punta di freccia (0, 0), (3, 1), (0, 2), (1, 1) alterna svolte a sinistra e a destra, quindi è concava. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto

Un test di convessità del poligono risponde a una domanda fondamentale della geometria computazionale: dato un anello ordinato di vertici cartesiani, ogni angolo interno resta al più pari a centottanta gradi in modo che la forma non si infossi mai verso l'interno? I geometri che convalidano particelle catastali, gli sviluppatori di giochi che definiscono scafi di collisione, i team GIS che puliscono poligoni di geofence, gli esportatori CAD che impongono vincoli di convessità e gli strumenti didattici che valutano esercizi su poligoni semplici necessitano di una risposta deterministica sì o no senza erigere un'intera libreria geometrica. Questa capacità accetta un elenco ordinato di vertici, percorre l'anello chiuso una sola volta e confronta il prodotto vettoriale bidimensionale di ogni coppia di spigoli consecutivi. Quando ogni prodotto vettoriale non nullo condivide lo stesso segno, ogni svolta va nello stesso senso e il poligono è convesso; segni misti indicano almeno un angolo rientrante e il poligono è concavo. I prodotti vettoriali nulli segnano vertici collineari e sono ammessi senza rompere la convessità.

Come i prodotti vettoriali di spigoli consecutivi decidono la convessità

Etichetti i vertici ordinati da V zero a V n meno uno e chiuda l'anello trattando lo spigolo dall'ultimo vertice al primo come presente anche quando chi chiama non ripete il punto iniziale. In ogni vertice B con vertice precedente A e successivo C, formi i vettori uscenti da A a B e da B a C. Il loro prodotto vettoriale bidimensionale è lo scalare z uguale a (B.x meno A.x) per (C.y meno B.y) meno (B.y meno A.y) per (C.x meno B.x).

Il segno di z è la direzione di svolta in B: positivo per una svolta a sinistra quando il piano è orientato con y in alto e x a destra (percorso antiorario del contorno), negativo per una svolta a destra (percorso orario) e zero quando A, B e C sono collineari.

Un poligono semplice è convesso se e solo se ogni svolta non nulla condivide lo stesso segno, il che significa che ogni angolo interno è al più di centottanta gradi e il contorno non inverte mai il senso di rotazione. Svolte positive e negative miste dimostrano un angolo interno rientrante da qualche parte sull'anello, quindi il poligono è concavo. L'algoritmo è strettamente O(n) nel numero di vertici dopo un unico passaggio di normalizzazione che elimina un duplicato finale del primo punto quando chi chiama ha già chiuso l'anello.

Quando conviene verificare la convessità

Le pipeline di mappatura e GIS usano un test di convessità del poligono prima di algoritmi che assumono ingresso convesso — ritaglio contro una finestra convessa, scomposizione di regioni complesse o alimentatori di solver che rifiutano vertici rientranti. Motori di gioco e simulazione convalidano maglie di collisione definite dai designer affinché un solo avvallamento non rompa poi ipotesi di assi di separazione o GJK. Esportatori CAD e di produzione impongono vincoli di convessità su grezzi e poligoni di supporto prima di inviare la geometria a un utensile di taglio.

Piattaforme educative valutano voci «questo poligono è convesso?» con un oracolo deterministico che tratta in modo coerente i vertici collineari a metà spigolo invece di affidarsi all'occhio. La convalida fallita non consuma saldo.

Convalida di geofence e particelle GIS

Rifiuti o segnali anelli catastali e di geofence concavi prima di pipeline che assumono poligoni convessi per ritaglio, buffer o routine di area.

Controlli di scafo di collisione nei giochi

Convalidi poligoni di collisione 2D definiti dai designer affinché gli algoritmi dipendenti dalla convessità non ricevano mai uno scafo ammaccato a runtime.

Valutazione automatica in aula ed esami

Valuti voci «questo poligono è convesso?» con un oracolo deterministico di prodotti vettoriali allineato alle definizioni di direzione di svolta dei manuali.

Come si verifica se un poligono è convesso?

Invii vertici ordinati come coppie {x, y} o [x, y] (almeno tre).

Cosa succede se alcuni vertici consecutivi sono collineari?

I prodotti vettoriali nulli sono ammessi. I punti collineari a metà spigolo non rompono da soli la convessità; solo svolte miste a sinistra e a destra segnano un poligono concavo.

L'ordine dei vertici (orario o antiorario) conta?

Qualsiasi orientamento coerente va bene. La risposta riporta orientation come clockwise o counterclockwise quando è convesso, e mixed quando le svolte non coincidono.

Cosa succede con meno di tre vertici?

Un test di convessità del poligono richiede almeno tre vertici; l'ingresso non valido non viene fatturato.

Cosa indica il risultato oltre al sì o al no?

Indica il verso di rotazione dell'anello: antiorario, orario, misto per una figura concava, oppure allineato quando tutti i punti stanno su una retta. Conta anche le svolte reali e i vertici in cui il contorno prosegue dritto.

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.

POSThttps://api.kit.forhosting.com/geo/polygon-is-convex

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/geo/polygon-is-convex \
  -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}]}'
{
  "vertices": [
    {
      "x": 0,
      "y": 0
    },
    {
      "x": 4,
      "y": 0
    },
    {
      "x": 4,
      "y": 3
    },
    {
      "x": 0,
      "y": 3
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.polygon_is_convex",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Come i prodotti vettoriali di spigoli consecutivi decidono la convessità

Quando ogni prodotto vettoriale è zero i vertici giacciono su una sola retta; la forma non ha area e questo endpoint riporta is_convex false con orientation collinear invece di inventare uno scafo convesso.

Contratto di ingresso, forma della risposta e comportamento di errore

Un vertice finale identico al primo viene eliminato automaticamente, così funzionano sia anelli chiusi in stile GeoJSON sia elenchi aperti di aula. Esempio: il quadrato (0,0), (4,0), (4,3), (0,3) è convesso con orientamento antiorario. Invii in POST un corpo JSON con un campo obbligatorio: vertices, un array ordinato di almeno tre punti. Ogni punto può essere un oggetto con x e y finiti (o alias lon e lat) oppure un array di due elementi [x, y]. Gli alias points, polygon e coords sono accettati con lo stesso significato così che i payload GIS esistenti si integrino senza rinominare. Meno di tre vertici dopo quella normalizzazione, payload che non sono array, coordinate mancanti e numeri non finiti falliscono con invalid_input e non vengono fatturati. In caso di successo il corpo include is_convex come booleano; n come conteggio normalizzato dei vertici; orientation come counterclockwise, clockwise, mixed o collinear; turn_count come numero di svolte non nulle; zero_turns come conteggio collineare; una stringa formula che riformula l'identità del prodotto vettoriale; e vertices ecoati come oggetti {x, y} nell'ordine dell'anello. La freccia concava (0,0), (3,1), (0,2), (1,1) mescola i segni di svolta e restituisce is_convex false. Abbini il booleano al Suo codice di disegno se Le serve uno schizzo; questo endpoint classifica solo la convessità e non emette grafici, scafi né triangolazione.

Dove un'API di convessità del poligono genera valore concreto

Poiché l'implementazione è pure parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita. Mantenga anelli modesti, fissi is_convex e orientation nei test e otterrà etichette di convessità riproducibili per geofence, controlli di aula e worker all'edge senza distribuire un'intera pila di geometria computazionale propria.

Quanto costa il test di convessità del poligono?

Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'ingresso non valido non viene fatturato.

Leggi la documentazione completa del KIT →