W Randolph Franklin home page
... (old version) Login


  1. Suppose that we want to smoothly move from point {$A$} (in 3D, or {$E^3$}) to point {$B$}.
  2. Our goal is to move along a great circle from {$A$} to {$B$} by varying {$\theta$}.
  3. That will be a 2D rotation in the plane {$\cal P$} determined by {$OAB$}.
  4. The normal to the plane {$\cal P$} is {$ N = A \times B $}.
  5. However {$|N|\neq 1 $} most of the time, so we'll have to normalize its length later.
  6. In {$\cal P$}, {$A$} serves as the X-axis.
  7. {$T=N \times A$} serves as the Y-axis.
  8. {$T= (A\times B) \times A = (A\cdot A)B - (A\cdot B) A = B - (A\cdot B) A $}
  9. If the angle between {$A$} and {$B$} is {$\alpha$}, then {$A\cdot B = \cos\alpha $}.
  10. We have to normalize {$T$} to {$\widehat{T} $}. To do that, divide by {$|T| = \sqrt{1-(A\cdot B)^2} $}.
  11. {$\widehat{T} = \frac{B}{\sqrt{1-(A\cdot B)^2} } - \frac{ (A\cdot B)} { \sqrt{1-(A\cdot B)^2}} A $}.
  12. Note that, if {$A\perp B$} then {$\widehat{T} = B $}.
  13. Now, to interpolate, {$ C = A \cos\theta + \widehat{T} \sin\theta $}
  14. {$ C = A\cos\theta + \left(\frac{B}{\sqrt{1-(A\cdot B)^2} } - \frac{ (A\cdot B)} { \sqrt{1-(A\cdot B)^2}} A \right) \sin\theta $}
  15. {$ C = A\left(\cos\theta - \frac{(A\cdot B)\sin\theta}{\sqrt{1-(A\cdot B)^2}}\right) + B\frac{\sin\theta}{\sqrt{1-(A\cdot B)^2}} $}
  16. We could rewrite it thus: {$$ C(\theta) = \frac{A\left(\sin\alpha\cos\theta - \cos\alpha\sin\theta\right) + B\sin\theta}{\sin\alpha} $$}
  17. ... and then thus: {$$ C(\theta) = A \cos\theta + \left(\frac{B-A\cos\alpha }{\sin\alpha}\right)\sin\theta $$}
  18. {$\theta=0$} gives {$A$} and {$\theta=\alpha$} gives {$B$}.


Summarizing:

To interpolate points {$C$} along a great circle from {$A$} to {$B$}, where {$|A|=|B|=1$}:

Let {$\alpha$} be the angle between {$A$} and {$B$}. Then

{$$ C(\theta) = A \cos\theta + \left(\frac{B-A\cos\alpha }{\sin\alpha}\right)\sin\theta $$}

for {$0\le\theta\le\alpha$}.


Example:

  1. Let {$A=(1,0,0), B = \left(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}, 0\right) $}
  2. Note that {$ |A| = |B| = 1 $}.
  3. Then {$A\cdot B=\frac{1}{\sqrt{2}} $}, {$C = (\cos\theta, \sin\theta, 0) $}.