Bien que les géodésiques ressemblent un peu aux ondes sinusoïdales dans certaines projections, la formule est incorrecte.
Voici une géodésique dans une projection équirectangulaire. Ce n'est clairement pas une onde sinusoïdale:
(L'image d'arrière-plan provient de http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg .)
Parce que toutes les projections équirectangulaires sont des transformations affines de celle-ci (où la coordonnée x est la longitude et la coordonnée y est la latitude), et les transformations affines des ondes sinusoïdales sont toujours des ondes sinusoïdales, nous ne pouvons nous attendre à aucune géodésique sous aucune forme de la La projection équirectangulaire doit être des ondes sinusoïdales (à l'exception de l'équateur, qui représente une ligne horizontale). Commençons donc au début et trouvons la bonne formule.
Soit l'équation d'une telle géodésique sous la forme
latitude = f(longitude)
pour qu'une fonction f soit trouvée. (Cette approche a déjà abandonné les méridiens, qui ne peuvent pas être écrits sous une telle forme, mais sinon, c'est tout à fait général.) La conversion en coordonnées cartésiennes 3D (x, y, z) donne
x = cos(l) cos(f(l))
y = sin(l) cos(f(l))
z = sin(f(l))
où l est la longitude et un rayon unitaire est supposé (sans aucune perte de généralité). Puisque les géodésiques sur la sphère sont des intersections avec des plans (passant par son centre), il doit exister un vecteur constant (a, b, c) - qui est dirigé entre les pôles de la géodésique - pour lequel
a x + b y + c z = 0
quelle que soit la valeur de l . La résolution de f (l) donne
f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)
à condition que c soit différent de zéro. Evidemment, lorsque c s'approche de 0, on obtient à la limite une paire de méridiens différant de 180 degrés - précisément les géodésiques que nous avons abandonnées au départ. Donc tout va bien. Soit dit en passant, malgré les apparences, cela n'utilise que deux paramètres égaux à a / c et b / c.
Notez que toutes les géodésiques peuvent être tournées jusqu'à ce qu'elles traversent l'équateur à zéro degré de longitude. Cela indique que f (l) peut être écrit en termes de f0 (l-l0) où l0 est la longitude du croisement équatorial et f0 est l'expression d'un croisement géodésique au premier méridien. De là, nous obtenons la formule équivalente
f(l) = ArcTan(gamma * sin(l - l0))
où -180 <= l0 <180 degrés est la longitude du croisement équatorial (lorsque la géodésique pénètre dans l'hémisphère nord en voyageant vers l'est) et gamma est un nombre réel positif. Cela n'inclut pas les paires de méridiens. Lorsque gamma = 0, il désigne l'équateur avec un point de départ à la longitude l0; on peut toujours prendre l0 = 0 dans ce cas si l'on souhaite un paramétrage unique. Il n'y a encore que deux paramètres, donnés par l0 et gamma cette fois.
Mathematica 8.0 a été utilisé pour créer l'image. En fait, il a créé une "manipulation dynamique" dans laquelle le vecteur (a, b, c) peut être contrôlé et la géodésique correspondante est affichée instantanément. (C'est plutôt cool.) Nous obtenons d'abord l'image d'arrière-plan:
i = Import[
"http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/\
Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg"]
Voici le code dans son intégralité:
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
etoffset
) quand les grands cercles ont naturellement que deux paramètres (chacun correspond à une paire de points diamétralement opposés qui sont « polaire » à elle)?