Saltar al contenido

Calcular la distancia entre dos puntos en coordenadas polares usando punto flotante

Solución:

Let b = (a1-a2)/2 
then using
cos( a1-a2) = 1 - 2*sin(b)*sin(b)
D = sqrt( (r1-r2)*(r1-r2) + 4*r1*r2*sin(b)*sin(b))

Esto al menos elimina las raíces cuadradas de los números negativos, pero seguiría teniendo problemas de desbordamiento.

Quizás

x = 2*sqrt(r1)*sqrt(r2)*sin(b)
D = hypot( r1-r2, x)

resolvería eso?

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *