Obwohl Geodäten in einigen Projektionen ein wenig wie Sinuswellen aussehen, ist die Formel falsch.
Hier ist eine Geodät in einer gleichwinkligen Projektion. Offensichtlich ist es keine Sinuswelle:
(Das Hintergrundbild stammt von http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg .)
Da alle äquirektangulären Projektionen affine Transformationen von dieser sind (wobei die x-Koordinate die Länge und die y-Koordinate die Breite ist) und affine Transformationen von Sinuswellen immer noch Sinuswellen sind, können wir in keiner Form Geodäten erwarten Die gleichwinklige Projektion muss Sinuswellen sein (mit Ausnahme des Äquators, der als horizontale Linie dargestellt wird). Fangen wir also am Anfang an und erarbeiten wir die richtige Formel.
Die Gleichung eines solchen Geodäten sei in der Form
latitude = f(longitude)
für eine Funktion f gefunden werden. (Dieser Ansatz hat bereits die Meridiane aufgegeben, die nicht in einer solchen Form geschrieben werden können, ansonsten aber völlig allgemein sind.) Die Umrechnung in kartesische 3D-Koordinaten (x, y, z) ergibt
x = cos(l) cos(f(l))
y = sin(l) cos(f(l))
z = sin(f(l))
Dabei ist l die Länge und ein Einheitsradius wird angenommen (ohne Verlust der Allgemeinheit). Da es sich bei Geodäten auf der Kugel um Schnittpunkte mit Ebenen handelt (die durch ihren Mittelpunkt verlaufen), muss ein konstanter Vektor (a, b, c) existieren, der zwischen die Pole der Geodätischen gerichtet ist
a x + b y + c z = 0
egal wie groß der Wert von l sein mag. Das Auflösen nach f (l) ergibt
f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)
vorausgesetzt, c ist ungleich Null. Offensichtlich erhalten wir , wenn c gegen 0 geht, an der Grenze ein Paar Meridiane, die sich um 180 Grad unterscheiden - genau die Geodäten, die wir zu Beginn aufgegeben haben. Also ist alles gut. Übrigens, trotz des Auftretens werden nur zwei Parameter verwendet, die a / c und b / c entsprechen.
Beachten Sie, dass alle Geodäten gedreht werden können, bis sie den Äquator bei null Grad Länge überqueren. Dies zeigt an, dass f (l) in Form von f0 (l-l0) geschrieben werden kann, wobei l0 die Länge des Äquatorübergangs und f0 der Ausdruck eines geodätischen Übergangs am Nullmeridian ist. Daraus erhalten wir die äquivalente Formel
f(l) = ArcTan(gamma * sin(l - l0))
Dabei ist -180 <= 10 <180 Grad die Länge des Äquatorübergangs (wenn die Geodät in östlicher Richtung in die nördliche Hemisphäre eintritt) und Gamma ist eine positive reelle Zahl. Dies schließt die Meridianpaare nicht ein. Wenn gamma = 0 ist, bezeichnet es den Äquator mit einem Startpunkt bei Länge 10; wir können in diesem Fall immer l0 = 0 nehmen, wenn wir eine eindeutige Parametrisierung wünschen. Es gibt nur noch zwei Parameter, die dieses Mal durch l0 und gamma gegeben sind .
Mathematica 8.0 wurde verwendet, um das Bild zu erstellen. Tatsächlich wurde eine "dynamische Manipulation" erstellt, bei der der Vektor (a, b, c) gesteuert werden kann und die entsprechende Geodäsie sofort angezeigt wird. (Das ist ziemlich cool.) Zuerst erhalten wir das Hintergrundbild:
i = Import[
"http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/\
Equirectangular-projection.jpg/800px-Equirectangular-projection.jpg"]
Hier ist der Code in seiner Gesamtheit:
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
undoffset
), wenn die Großkreise natürlich nur zwei Parameter haben (jeder entspricht einem Paar diametral entgegengesetzter Punkte, die dazu "polar" sind)?