A roll in the horizontal plane of length
about an axis at angle
axis produces the following change in orientation:
We want to choose the pair
that moves a point from the starting latitude-longitude pair to the desired latitude-longitude pair.
First, we compute the 3D location of the point from the latitude-longitude pair
be the start and end coordinates.
The angle to roll along is given by
, which is undefined if the
coordinates overlap. If they overlap and
any angle works. Otherwise, set
The length of the roll
is determined by the angle between the start and ending latitude-longitude pair with respect to the intersection of the line in the
plane between the start and end points and a perpendicular line to the origin. If
is the squared
distance between the start and end points, this intersection point is given by
, the intersection point is the origin.
are the vectors to the starting and ending north poles from this intersection point, then we can use a property of the dot product to calculate the angle
, which satisfies