Subject: Re: Distance on the sphere
Date: Mon, 23 Jun 1997 08:57:04 -0400
From: Alexander Bogomolny
Providing the algorithm is probably the best I can do. See if you can fill in the details.
- First of all, you must know formulas for spherical coordinates:
x = r cos(f) sin(g)
y = r sin(f) sin(g)
z = r cos(g)
where r is the radius of the sphere, f is the longitude, and g is the latitude of the point (x,y,z). The sphere is located with its center at the origin.
- Given two points a = (x1,y1,z1) and b = (x2,y2,z2) on the sphere,
one can find the angle between them from two formulas for the scalar product:
a.b = |a| |b| cos(i) = x1x2 + y1y2 + z1z2
where |a| is the distance from a to the origin (the length of the corresponding vector), or sqrt(x12 + y12 + z12).
- Now, it's like on a circle. One has to find the length of an arc on a circle of radius r subtending a given central angle i which is given by
length = i r