Implementation and Analysis of Arc Length on Spherical Surfaces
To compute the length of an arc on a spherical surface,
we first must have a way to define the arc’s endpoints. For this,
arclen accepts the two points
p1 and p2. Each
endpoint is an SPoint structure. This
structure consists of three members, rho,
theta, and phi,
which are the spherical coordinates for a point expressed in radian
measure.
The arclen operation (see Example 17.4) begins by converting
spherical coordinates into rectilinear coordinates using the equations
presented earlier. Recall that this allows us to calculate the angle
between the lines extending from the center of the sphere to either
point on its surface. Next, we simply multiply this angle by the
radius of the sphere to obtain the length of the arc from
p1 to p2.
The runtime complexity of arclen is O (1) because all of the steps in computing the length of an arc on a spherical surface run in a constant amount of time.
/***************************************************************************** * * * ------------------------------- arclen.c ------------------------------- * * * *****************************************************************************/ #include <math.h> #include "geometry.h" /***************************************************************************** * * * -------------------------------- arclen -------------------------------- * * * *****************************************************************************/ ...