Middelpuntshoeken op de eenheidsbol
Geef de middelpuntshoek in radialen tussen bolposities met breedtegraden binnen ±90 en lengtegraden binnen ±180 graden.
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))))Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Test samenvallende punten en antipoden en wijs niet-eindige coördinaten af zonder een aardstraal aan te nemen.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
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))))Behoud coördinaatconventies tijdens de hele wijziging
ArcNerine biedt een Windows-omgeving voor broncode-inspectie en AI-gesprekken over coördinaatgerelateerde software. Neem de projectbestanden mee en leg uit wat de binnenkomende getallen voorstellen voordat je een implementatiewijziging vraagt. Eenheden, coördinaatvolgorde en geaccepteerde bereiken horen bij het gedrag en dus in het verzoek, naast de berekening die je wilt aanpassen.
Het voorbeeld met middelpuntshoeken op de eenheidsbol biedt een nuttige beoordelingstaak. Vraag het verbonden model invoer in graden te volgen door een routine die radialen teruggeeft en bekijk vervolgens hoe de aanroeper het resultaat gebruikt. Vergelijk samenvallende en tegenoverliggende posities en bespreek geweigerde niet-eindige waarden. Samen laten die gevallen beter zien wanneer een codewijziging een interfaceaanname verandert in plaats van alleen de rekenkunde.
Beoordeel de voorgestelde patch met invoercontroles en uitvoergebruikende code in beeld. Voer de referentiegevallen van je project uit en verifieer elke conversie- of weergaveregel expliciet. Een ongefilterd model kan helpen wanneer het beschikbaar is via een ondersteund OpenAI-compatibel of Anthropic-endpoint met vereiste inloggegevens. Tools en contextlimieten komen van dat model en die server. Het doel is een toepassingswijziging met samenhangende conventies; de geometrische voorbeeldtaak biedt een concrete manier om het werk te controleren.
Coördinaatvragen bij een codebeoordeling
- Is de uitvoer van het voorbeeld een afstand in kilometers?
Het is een middelpuntshoek in radialen op een eenheidsbol. Een fysieke afstandsinterpretatie vereist een extra model en een gekozen straal. Bekijk de aanroeper, zodat die een hoekresultaat niet zonder expliciete conversie als afstand labelt.
- Wat moet ik over breedtegraad en lengtegraad vastleggen?
Leg volgorde, eenheden en ondersteunde bereiken vast en neem die verwachtingen op in de testgevallen. Vraag de assistent naast de functie ook gegevensbron en gebruikende code te bekijken, want een verwisseld argument kan nog steeds een geldig getal zijn.
- Welke posities zijn nuttige referentiegevallen?
Gebruik samenvallende en antipodale posities naast een eenvoudig tussengeval met een bekende verwachte hoek. Controleer geweigerde niet-eindige invoer en invoer buiten bereik apart, zodat een geslaagd geometrisch resultaat geen verzwakte invoergrens verbergt.
- Mag begrenzing invoervalidatie vervangen?
Nee. Beoordeel waarom numerieke begrenzing aanwezig is en houd controles op geaccepteerde coördinaten expliciet. Afronding binnen een berekening afhandelen verschilt van ongeldige toepassingsinvoer accepteren; beide gedragingen moeten volgens hun eigen vastgelegde eisen worden getest.
ArcNerine · Bijgewerkt 2026-10-25