AArcNerine
Espacio de programación con IA

Ángulos centrales en la esfera unitaria

Devuelve en radianes el ángulo central entre posiciones esféricas con latitudes de ±90 y longitudes de ±180 grados.

● ● ●ArcNerine●
Flujos de trabajo · Ángulos centrales en la esfera unitaria ×
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))))
✳Devuelve en radianes el ángulo central entre posiciones esféricas con latitudes de ±90 y longitudes de ±180 grados.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
  1. Modelos

    Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

  2. Proyecto

    Prueba puntos coincidentes y antípodas, rechazando coordenadas no finitas sin suponer un radio terrestre.

  3. Revisa antes de aplicar

    Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

Flujos de trabajo

Ángulos centrales en la esfera unitaria

Flujos de trabajo ↗
Flujos de trabajo
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))))
Espacio de programación con IA

Mantén las convenciones de coordenadas a lo largo de todo el cambio

ArcNerine ofrece al trabajo de software relacionado con coordenadas un entorno Windows para inspeccionar código y conversar con IA. Aporta los archivos del proyecto y explica qué representan los números entrantes antes de pedir un cambio de implementación. Las unidades, el orden de coordenadas y los intervalos admitidos forman parte del comportamiento, por lo que deben acompañar en la solicitud al cálculo que deseas ajustar.

El ejemplo del ángulo central en la esfera unidad proporciona una tarea de revisión útil. Pide al modelo conectado que siga una entrada en grados por una rutina que devuelve radianes y examine cómo utiliza ese resultado el consumidor. Compara posiciones coincidentes y opuestas y analiza el rechazo de valores no finitos. Reunir estos casos ayuda a revelar cuándo una modificación cambia un supuesto de interfaz y no solo la aritmética.

Revisa el parche propuesto teniendo a la vista las comprobaciones de entrada y el consumidor de salida. Ejecuta los casos de referencia de tu proyecto y verifica explícitamente cualquier regla de conversión o visualización. Un modelo sin filtros puede ayudar cuando esté disponible mediante un endpoint compatible con OpenAI o de Anthropic admitido, configurado con las credenciales necesarias. Las herramientas y los límites de contexto provienen de ese modelo y servidor. El objetivo es un cambio de aplicación cuyas convenciones sigan siendo coherentes, usando la tarea geométrica ilustrativa como forma concreta de comprobar el trabajo.

Preguntas de coordenadas para revisar código

¿Es la salida del ejemplo una distancia en kilómetros?

Es un ángulo central en radianes sobre una esfera unidad. Interpretarlo como distancia física requiere un modelo adicional y elegir un radio. Revisa el consumidor para que no etiquete un resultado angular como distancia sin esa conversión explícita.

¿Qué debo especificar sobre latitud y longitud?

Indica su orden, unidades e intervalos admitidos e incluye esas expectativas en los casos de prueba. Pide al asistente que examine la fuente de datos y el consumidor además de la función, ya que un argumento intercambiado aún puede ser un número válido.

¿Qué posiciones son útiles como referencia?

Utiliza posiciones coincidentes y antípodas junto con un caso intermedio sencillo de ángulo esperado conocido. Comprueba por separado el rechazo de entradas no finitas y fuera de rango para que un resultado geométrico correcto no oculte una validación debilitada.

¿Debe una limitación numérica sustituir la validación de entrada?

No. Revisa por qué existe esa limitación y mantén explícitas las comprobaciones de coordenadas admitidas. Tratar el redondeo dentro de un cálculo es distinto de aceptar entradas inválidas de la aplicación, y ambos comportamientos deben probarse conforme a sus propios requisitos declarados.

Descargar para Windows ↗

ArcNerine · Actualizado 2026-10-25