Хотя в некоторых проекциях геодезические немного похожи на синусоиды, формула неверна.
Вот одна геодезическая в равноугольной проекции. Понятно, что это не синусоида
(Фоновое изображение взято с http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg .)
Поскольку все равноугольные проекции являются аффинными преобразованиями этого (где координата x является долготой, а координата y является широтой), а аффинные преобразования синусоидальных волн все еще являются синусоидами, мы не можем ожидать каких-либо геодезических в любой форме Равноугольная проекция должна быть синусоидальной (кроме экватора, который изображен в виде горизонтальной линии). Итак, начнем с самого начала и разработаем правильную формулу.
Пусть уравнение такой геодезической имеет вид
latitude = f(longitude)
чтобы найти функцию f . (Этот подход уже отказался от меридианов, которые не могут быть записаны в такой форме, но в остальном являются полностью общими.) Преобразование в трехмерные декартовы координаты (x, y, z) дает
x = cos(l) cos(f(l))
y = sin(l) cos(f(l))
z = sin(f(l))
где l - долгота и единичный радиус (без потери общности). Поскольку геодезические на сфере являются пересечениями с плоскостями (проходящими через ее центр), должен существовать постоянный вектор (a, b, c) - который направлен между полюсами геодезической - для которого
a x + b y + c z = 0
независимо от того, какое значение л может быть. Решение для f (l) дает
f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)
при условии, что с ненулевой. Очевидно, что когда c приближается к 0, мы получаем в пределе пару меридианов, отличающихся на 180 градусов - именно те геодезические, которые мы оставили в самом начале. Так что все хорошо. Кстати, несмотря на внешность, здесь используются всего два параметра, равные a / c и b / c.
Обратите внимание, что все геодезические можно поворачивать до тех пор, пока они не пересекут экватор на нулевой долготе. Это указывает на то, что f (l) можно записать в терминах f0 (l-l0), где l0 - долгота экваториального пересечения, а f0 - выражение геодезического пересечения в главном меридиане. Отсюда получаем эквивалентную формулу
f(l) = ArcTan(gamma * sin(l - l0))
где -180 <= l0 <180 градусов - долгота экваториального пересечения (когда геодезическая входит в северное полушарие при движении на восток), а гамма - положительное действительное число. Это не включает пары меридианов. Когда гамма = 0, он обозначает экватор с начальной точкой на долготе l0; в этом случае мы всегда можем взять l0 = 0, если хотим уникальную параметризацию. На этот раз осталось только два параметра, заданных l0 и gamma .
Mathematica 8.0 была использована для создания изображения. Фактически он создал «динамическую манипуляцию», в которой вектором (a, b, c) можно управлять и соответствующая геодезическая отображается мгновенно. (Это довольно круто.) Сначала мы получаем фоновое изображение:
i = Import[
"http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/\
Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg"]
Вот код в полном объеме:
Manipulate[
{a, b, c} = {Cos[u] Cos[v], Sin[u] Cos[v], Sin[v]};
Show[Graphics[{Texture[i],
Polygon[{{-\[Pi], -\[Pi]/2}, {\[Pi], -\[Pi]/2}, {\[Pi], \[Pi]/2}, {-\[Pi], \[Pi]/2}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}],
Plot[ArcTan[(a Cos[\[Lambda]] + b Sin[\[Lambda]]) / (-c)], {\[Lambda], -\[Pi], \[Pi]},
PlotRange -> {Automatic, {-\[Pi]/2, \[Pi]/2}}, PlotStyle -> {Thick, Red}]],
{u, 0, 2 \[Pi]}, {v, -\[Pi]/2, \[Pi]}]
rotation
,amplitude
иoffset
) , когда большие круги , естественно , есть только два параметра (каждый из которых соответствует паре диаметрально противоположным точкам, «полярные» к нему)?