Kąty środkowe na sferze jednostkowej
Zwróć w radianach kąt środkowy między pozycjami sferycznymi o szerokościach do ±90 i długościach do ±180 stopni.
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))))Modele
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Projekt
Sprawdź zbieżne punkty i antypody, odrzucając nieskończone współrzędne bez przyjmowania promienia Ziemi.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
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))))Zachowaj konwencje współrzędnych przez całą zmianę
ArcNerine zapewnia pracom programistycznym związanym ze współrzędnymi środowisko dla Windows do przeglądu źródeł i rozmowy z AI. Przedstaw pliki projektu i wyjaśnij znaczenie liczb wejściowych przed poproszeniem o zmianę implementacji. Jednostki, kolejność współrzędnych i przyjmowane zakresy są częścią zachowania, więc należą do polecenia obok obliczenia, które chcesz dostosować.
Przykład kąta środkowego na sferze jednostkowej stanowi przydatne zadanie przeglądowe. Poproś podłączony model o prześledzenie wejścia w stopniach przez procedurę zwracającą radiany, a następnie sprawdź użycie tego wyniku przez kod wywołujący. Porównaj pozycje pokrywające się i przeciwległe oraz omów odrzucane wartości nieskończone i NaN. Wspólne rozpatrywanie tych przypadków pomaga ujawnić zmianę założenia interfejsu, a nie tylko arytmetyki.
Przejrzyj proponowaną poprawkę z uwzględnieniem kontroli wejścia i odbiorcy wyjścia. Uruchom przypadki referencyjne projektu i jawnie zweryfikuj każdą regułę konwersji lub wyświetlania. Model bez filtrów może pomóc, gdy jest dostępny przez obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic, skonfigurowany z wymaganymi danymi uwierzytelniającymi. Narzędzia i limity kontekstu pochodzą od tego modelu i serwera. Celem jest zmiana aplikacji zachowująca spójność konwencji, a przykładowe zadanie geometryczne zapewnia konkretny sposób sprawdzenia pracy.
Pytania o współrzędne podczas przeglądu kodu
- Czy wyjście przykładu to odległość w kilometrach?
To kąt środkowy w radianach na sferze jednostkowej. Interpretacja jako odległości fizycznej wymaga dodatkowego modelu i wyboru promienia. Sprawdź kod wywołujący, aby bez jawnej konwersji nie oznaczał wyniku kątowego jako odległości.
- Co określić dla szerokości i długości geograficznej?
Podaj kolejność, jednostki i obsługiwane zakresy, a następnie uwzględnij te oczekiwania w danych testowych. Poproś asystenta o sprawdzenie źródła danych i odbiorcy oraz samej funkcji, ponieważ zamieniony argument nadal może być poprawną liczbą.
- Jakie pozycje są przydatnymi przypadkami referencyjnymi?
Użyj pozycji pokrywających się i antypodalnych oraz prostego przypadku pośredniego ze znanym oczekiwanym kątem. Osobno sprawdź odrzucane wartości nieskończone, NaN i wartości spoza zakresu, aby udany wynik geometryczny nie ukrył osłabionej granicy wejścia.
- Czy ograniczenie wartości do przedziału powinno zastąpić walidację wejścia?
Nie. Sprawdź przyczynę obecności ograniczenia numerycznego i zachowaj jawne kontrole przyjmowanych współrzędnych. Obsługa zaokrągleń wewnątrz obliczenia różni się od przyjmowania nieprawidłowych danych aplikacji, a oba zachowania należy testować zgodnie z ich własnymi wymaganiami.
ArcNerine · Zaktualizowano 2026-10-25