Esta es probablemente una pregunta demasiado simple para este sitio, pero realmente apreciaría cualquier respuesta.
Digamos que tengo una esfera con radio $r = 70$ metros. Esta esfera tiene un sistema de referencia similar al de la Tierra en el que las coordenadas se dan como: (longitud, latitud). El sistema de coordenadas es exactamente igual al de la Tierra, así que los cero grados de latitud están en el "ecuador" de la esfera con $90$ grados siendo la cima o "Polo Norte" de la esfera, y $-90$ grados siendo el fondo o "Polo Sur" de la esfera. También tengo una línea vertical en la que los números positivos van al este y los negativos al oeste. En esta esfera tengo dos puntos con su ubicación, ambos representados en grados: $$ \begin {gather} (1, 1) \\ (3, 3) \end {gather} $$ Ambos puntos están dibujados en la imagen que he dibujado abajo. En esta imagen, también he dibujado algunas "líneas de ayuda".
Ahora necesito encontrar la longitud de $d$ (la distancia entre los dos puntos). Hasta ahora puedo calcular las variables $a$ y $b$ y sé que $D$ (la esquina opuesta a $d$ ) es de 90 grados.
Para calcular la distancia de $d$ Utilizo la ley esférica de los cosenos ( wiki aquí ): $$ \cos (d) = \cos (a) * \cos (b) + \sin (a) * \sin (b) * \cos (D) $$
Sin embargo, como estamos usando un sistema de referencia similar al de la Tierra, el rango de latitud es $[- \frac { \pi }{2}, \frac { \pi }{2}]$ en lugar de $[0, \pi ]$ y el rango de longitud es $[- \pi , \pi ]$ en lugar de $[0, 2 \pi ]$ . Leí que por lo tanto necesitamos traducir esta ley a lo siguiente: $$ \cos (d) = \sin (a) * \sin (b) + \cos (a) * \cos (b) * \cos (D) $$
Como la ley esférica del coseno necesita todas las variables en radianes pero nuestros puntos en la esfera están dados en grados, primero transformo los grados en radianes: $$ \begin {align} a &= (3 - 1) * \frac { \pi }{180} = 0.0349065850399 \\ b &= (3 - 1) * \frac { \pi }{180} = 0.0349065850399 \\ D &= 90 * \frac { \pi }{180} = 1.5707963267948966 \end {align} $$
Llenando esto en la fórmula obtengo lo siguiente: $$ \begin {gather} \cos (d) = \sin (a) * \sin (b) + \cos (a) * \cos (b) * \cos (D) = 0.00121797487009 \\ d \text { in radians} = 1.56957835162 \\ \text {distance in meters} = d * 70 = 109.870484614 \end {gather} $$
El código de la pitón con el que calculo esto se puede encontrar aquí: http://pastebin.com/U3qvXxRZ
La respuesta que obtengo aquí parece ser incorrecta. En primer lugar, una distancia de 109 metros entre dos puntos que están a sólo dos grados de distancia en una esfera con un diámetro de 140 metros me parece mucho. En segundo lugar, si acerco los puntos entre sí, la distancia en metros parece aumentar. En tercer lugar, encontré este pequeño trozo de código pitón ( aquí ), en el que parecen hacerlo de forma diferente. Simplemente toman la latitud del primer y segundo punto como las variables "a" y "b", en lugar de la diferencia entre las latitudes como "a".
Así que mi pregunta. ¿Qué estoy haciendo mal aquí? ¿Cuál es el error que cometo?
Simplifiqué la pregunta e inserté una imagen