2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Расстояние между двумя точками на сфере
Сообщение11.05.2008, 22:07 
Аватара пользователя
Я решил задачку и вроде бы даже правильно, но не пойму почему почему в нете ответы другие... Помогите пожалуйста!

Дано: широта и долгота 1-ой точки S1 и D1, широта и долгота 2-ой точки S2 и D2, радиус R.
Найти: расстояние L.

p.s. shirota и dolgota, поэтому обозначил этими буквами s и d.

Решение (верное ли?):
Координаты точки сферы параметрически вычисляются так:

$X = \sin S \cdot \cos D$
$Y = \sin S \cdot \sin D$
$Z = \cos S$
где S из [$-\frac \pi 2$; $\frac \pi 2$], D из [$-\pi$, $\pi$].

Вычислив точки P1 и P2 относительно центра сферы, можно найти угол между векторами P1 и P2 с помощью скалярного произведения, причем:

<P1, P2> = |P1| * |P2| * cos(A) = R * R * cos(A)
где A искомый угол.

Таким образом, находя скалярное произведение получим (я его заранее поделю на R^2, чтобы много не писать):

$\cos A = <P_1, P_2> / R^2 = ( X_1 * X_2 + Y_1 * Y_2 + Z_1 * Z_2 ) / R^2 =$
$\sin S_1 \cdot \cos D_1 \cdot \sin S_2 \cdot \cos D_2 + \sin S_1 \cdot \sin D_1 \cdot \sin S_2 \cdot \sin D_2 + \cos S_1 \cdot \cos S_2 =$
$\sin S_1 \cdot \sin S_2 \cdot \left( \cos D_1 \cdot \cos D_2 + \sin D_1 \cdot \sin D_2 \right) + \cos S_1 \cdot \cos S_2 =$
$\sin S_1 \cdot \sin S_2 \cdot \cos {(D_1 - D_2)} + \cos S_1 \cdot \cos S_2$

A найдем через arccos. Расстояние L = A * R.

В итоге получим:

$L = R \cdot \arccos ( \sin S_1 \cdot \sin S_2 \cdot \cos {(D_1 - D_2)} + \cos S_1 \cdot \cos S_2 )$

Верно ли это? Просто я находил другую формулу в нете (такую как тут http://tvsh2004.narod.ru/geo_koor.htm или вот тут http://dxdy.ru/viewtopic.php?t=13182), но не пойму почему там так...

Помогите разобраться пожалуйста!

 
 
 
 
Сообщение11.05.2008, 22:24 
Аватара пользователя
:evil:
Первое, что бросается в глаза: $z = \sin S$. Проверьте для точки на экваторе: широта равна 0. Если поправите, то должно совпасть (по крайней мере, с первой ссылкой)

P.S. \pi красивее: $\pi$

 
 
 
 
Сообщение11.05.2008, 22:44 
Аватара пользователя
Да... И правда... просто видимо я использовал угол между осью Z и вектором на точку P. Как в ссылке на Википедии:
http://ru.wikipedia.org/wiki/Сферическая система координат

А надо между вектором и плоскостью XY :lol: Поэтому-то и формула другая... Тогда уж и вычисления координат надо делать по формулам:

$X = \cos S \cdot \cos D$
$Y = \cos S \cdot \sin D$
$Z = \sin S$

Тогда совпадет вывод с обеими формулами. Спасибо большое за разъяснение, незваный гость :D

P.S. Пи тоже поменял... и правда красивее :roll:

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group