Anwendung herunterladen
Wählen Sie einen Ordner und lassen Sie die betreffenden Dateien vor einer Änderung lesen. Legen Sie Ziel und Grenzen der Aufgabe fest.
Berechne den Zentralwinkel zweier Kugelpositionen in Radiant bei Breitengraden bis ±90 und Längengraden bis ±180 Grad. Prüfe gleiche und antipodale Punkte und lehne nicht endliche Koordinaten ohne Annahme eines Erdradius ab.
Wählen Sie einen Ordner und lassen Sie die betreffenden Dateien vor einer Änderung lesen. Legen Sie Ziel und Grenzen der Aufgabe fest.
Wählen Sie einen kompatiblen Endpunkt. Verfügbare Werkzeuge und Antwortqualität hängen vom konfigurierten Modell und Server ab.
Prüfen Sie Änderungen und Befehlsausgaben. Führen Sie die Projektprüfungen aus, bevor Sie das Ergebnis übernehmen; erzeugter Code ist nicht automatisch getestet.
Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
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))))Vor dem Anwenden prüfen. Prüfen Sie Änderungen und Befehlsausgaben. Führen Sie die Projektprüfungen aus, bevor Sie das Ergebnis übernehmen; erzeugter Code ist nicht automatisch getestet.