Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

So I've been doing a lot of searching and haven't found exactly what I'm looking for. My math skills are a bit rusty, so I haven't had luck deriving this on my own.

What I'm looking for is an equation (or set of equations) where I can plug in starting and ending spherical coordinates, plus a percentage (ie [0,1]) and output spherical coordinates of some point in between (ie, progress along a great circle).

The idea is basically to chart the progress of a plane between two cities and draw it on a globe or map.

Inputs:

  • lat1,lon1
  • lat2,lon2
  • r (radius)
  • p (progress, from 0->1)

Output:

  • lat_x,lon_x (point in-between)
share|improve this question
    
See this question for some ideas. Once you figure out the initial compass direction Clairaut's relation probably also helps. –  Jyrki Lahtonen May 6 '13 at 19:52
    
I appreciate the suggestion. What I'm really looking for is an equation already derived that I can plug numbers into. Haven't had a luck deriving anything on my own... –  Robert C May 6 '13 at 21:27
add comment

2 Answers

Ok, so I found what I was looking for at Ed Williams' awesome Aviation Formulary:

Given (lat1,lon1), (lat2,lon2), and progress fraction f=[0,1]

d = acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon1 - lon2))
A = sin((1 - f) * d) / sin(d)
B = sin(f * d) / sin(d)
x = A * cos(lat1) * cos(lon1) + B * cos(lat2) * cos(lon2)
y = A * cos(lat1) * sin(lon1) + B * cos(lat2) * sin(lon2)
z = A * sin(lat1) + B * sin(lat2)

lat_f = atan2(z, sqrt(x^2 + y^2))
lon_f = atan2(y,x)

share|improve this answer
add comment

Perhaps the most succinct and easiest answer (from http://www.physicsforums.com/showpost.php?p=3732362&postcount=5):

"You are given two points u and v on the unit sphere. Think of them as position vectors u⃗ and v⃗ . It is easy enough to calculate cross products. Calculate w⃗ =(u⃗ ×v⃗ )×u⃗ . Then w⃗ and u⃗ are unit vectors perpendicular to each other and in the plane of the circle. So a parameterization of the circle is R⃗ (t)=u⃗ cost+w⃗ sint"

Correction: w is only a unit vector if u and v are perpendicular.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.