Angoli al centro della sfera unitaria
Restituisci in radianti l’angolo centrale tra posizioni sferiche con latitudini entro ±90 e longitudini entro ±180 gradi.
from math import asin, cos, isfinite, radians, sin, sqrt
def central_angle(lat1, lon1, lat2, lon2):
values = (lat1, lon1, lat2, lon2)
if any(type(x) not in (int, float) or not -limit <= x <= limit
or not isfinite(x) for x, limit in zip(values, (90, 180, 90, 180))):
raise ValueError("bounded finite coordinates")
p, q = radians(lat1), radians(lat2)
a = sin((q-p)/2)**2 + cos(p)*cos(q)*sin(radians(lon2-lon1)/2)**2
return 2 * asin(sqrt(min(1.0, max(0.0, a))))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
Controlla punti coincidenti e antipodi, rifiutando coordinate non finite senza assumere un raggio terrestre.
Controlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
from math import asin, cos, isfinite, radians, sin, sqrt
def central_angle(lat1, lon1, lat2, lon2):
values = (lat1, lon1, lat2, lon2)
if any(type(x) not in (int, float) or not -limit <= x <= limit
or not isfinite(x) for x, limit in zip(values, (90, 180, 90, 180))):
raise ValueError("bounded finite coordinates")
p, q = radians(lat1), radians(lat2)
a = sin((q-p)/2)**2 + cos(p)*cos(q)*sin(radians(lon2-lon1)/2)**2
return 2 * asin(sqrt(min(1.0, max(0.0, a))))Mantieni le convenzioni delle coordinate in tutta la modifica
ArcNerine offre al lavoro software sulle coordinate un ambiente Windows per esaminare il codice e conversare con un'IA. Porta i file del progetto e spiega cosa rappresentano i numeri in ingresso prima di chiedere una modifica all'implementazione. Unità, ordine delle coordinate e intervalli accettati fanno parte del comportamento, quindi devono comparire nella richiesta insieme al calcolo da modificare.
L'esempio dell'angolo al centro sulla sfera unitaria offre un'attività utile di revisione. Chiedi al modello collegato di seguire un input in gradi attraverso una procedura che restituisce radianti, poi esamina come il chiamante usa il risultato. Confronta posizioni coincidenti e opposte e discuti il rifiuto dei valori non finiti. Mantenere insieme questi casi aiuta a scoprire quando una modifica altera un'ipotesi dell'interfaccia anziché solo l'aritmetica.
Rivedi la modifica proposta tenendo visibili i controlli degli input e il codice che usa l'output. Esegui i casi di riferimento del progetto e verifica esplicitamente ogni conversione o regola di visualizzazione. Un modello senza filtri può aiutare quando disponibile tramite un endpoint supportato compatibile con OpenAI o Anthropic, configurato con le credenziali richieste. Strumenti e limiti di contesto provengono da quel modello e server. L'obiettivo è una modifica dell'applicazione con convenzioni coerenti, usando l'esempio geometrico come modo concreto per verificare il lavoro.
Domande sulle coordinate per una revisione del codice
- L'output dell'esempio è una distanza in chilometri?
È un angolo al centro in radianti su una sfera unitaria. Interpretarlo come distanza fisica richiede un modello aggiuntivo e la scelta di un raggio. Rivedi il chiamante affinché non etichetti un risultato angolare come distanza senza quella conversione esplicita.
- Cosa devo specificare su latitudine e longitudine?
Indica ordine, unità e intervalli supportati, poi includi tali aspettative nei casi di test. Chiedi all'assistente di esaminare origine dei dati e codice utilizzatore oltre alla funzione, perché un argomento scambiato può comunque essere un numero valido.
- Quali posizioni sono utili come casi di riferimento?
Usa posizioni coincidenti e antipodali insieme a un caso intermedio semplice con angolo atteso noto. Controlla separatamente il rifiuto degli input non finiti e fuori intervallo, affinché un risultato geometrico riuscito non nasconda limiti di input indeboliti.
- Una limitazione numerica deve sostituire la validazione degli input?
No. Rivedi perché è presente una limitazione numerica e mantieni espliciti i controlli sulle coordinate accettate. Gestire l'arrotondamento dentro un calcolo è diverso dall'accettare input non validi nell'applicazione; entrambi i comportamenti vanno testati secondo i propri requisiti dichiarati.
ArcNerine · Aggiornato 2026-10-25