Area orientata dei poligoni
Restituisci il doppio dell’area orientata di 3–256 vertici interi con coordinate di valore assoluto massimo 1000000.
def signed_double_area(points):
if type(points) not in (list, tuple) or not 3 <= len(points) <= 256:
raise ValueError("polygon.count")
for p in points:
if type(p) not in (list, tuple) or len(p) != 2 or any(type(v) is not int or abs(v) > 10**6 for v in p):
raise ValueError("polygon.coordinate")
return sum(a[0]*b[1]-a[1]*b[0] for a,b in zip(points, points[1:]+points[:1]))Controlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Modelli
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
Progetto
Prova ordine inverso e collinearità, tratta algebricamente gli incroci e rifiuta coordinate malformate.
def signed_double_area(points):
if type(points) not in (list, tuple) or not 3 <= len(points) <= 256:
raise ValueError("polygon.count")
for p in points:
if type(p) not in (list, tuple) or len(p) != 2 or any(type(v) is not int or abs(v) > 10**6 for v in p):
raise ValueError("polygon.coordinate")
return sum(a[0]*b[1]-a[1]*b[0] for a,b in zip(points, points[1:]+points[:1]))Collega le convenzioni sulle coordinate al codice che le usa
ShoalMetric è un ambiente di programmazione con IA per Windows per discutere i calcoli nel contesto dell'applicazione che ne usa i risultati. Seleziona la cartella del progetto e descrivi la convenzione sulle coordinate, il risultato atteso e i casi che l'applicazione deve rifiutare. Chiedi all'assistente collegato di esaminare la validazione e il codice utilizzatore prima di suggerire modifiche. Così il compito geometrico ha un confine software concreto e il suo significato non resta racchiuso in una formula isolata.
Un'attività su polygon.py potrebbe chiedere perché invertire l'ordine dei punti cambia il risultato di un'area con segno. Fornisci un poligono di esempio e specifica se al chiamante serve l'orientamento, il valore assoluto o un'altra rappresentazione. Valuta la modifica proposta rispetto a tale requisito, compreso l'ordine in cui arrivano i vertici. Il risultato utile è un codice il cui output ha un significato concordato ovunque l'applicazione lo utilizzi.
Dopo l'esame, esegui i controlli del progetto con una forma semplice, l'ordine invertito e i casi degeneri previsti dal contratto. Confronta il calcolo e il comportamento a valle, poi riporta nella conversazione le discrepanze. ShoalMetric supporta connessioni a modelli compatibili con OpenAI o Anthropic, con credenziali dove richieste. Puoi scegliere un modello senza restrizioni ove disponibile, nel rispetto delle regole del fornitore; strumenti, capacità di contesto e restrizioni delle risposte dipendono comunque dal modello e dal server configurati. Spetta a te verificare il comportamento geometrico atteso.
Ipotesi geometriche da definire nell'ambiente di lavoro
Un risultato negativo per l'area va considerato un errore?
Dipende dal fatto che il chiamante usi una quantità con segno per conservare l'orientamento. Specifica il significato richiesto prima di cambiare il segno o prendere il valore assoluto, quindi verifica l'effetto sul codice che usa il risultato.
Perché includere in un test l'ordine invertito dei vertici?
Rivela se l'orientamento fa parte del contratto e se l'implementazione lo conserva. Usa una forma con un risultato noto indipendentemente, quindi esamina sia l'output numerico sia il comportamento del chiamante per la sequenza invertita.
L'esempio convalida ogni possibile poligono?
Non dedurlo da un calcolo dell'area. Se l'applicazione richiede controlli sulle intersezioni o altre proprietà geometriche, indica tali requisiti separatamente ed esamina l'implementazione pertinente anziché presumere che il calcolo li garantisca.
Come dovrei scegliere i limiti delle coordinate?
Usa i vincoli della tua applicazione e della rappresentazione numerica. Comunica questi limiti all'assistente, esamina come vengono applicati e verifica valori vicini a essi. I limiti nel codice di esempio non garantiscono precisione o prestazioni per una scala di dati diversa.
ShoalMetric · Aggiornato 2026-10-25