測地線は一部の投影図では正弦波のように見えますが、式は正しくありません。
これは、正距円筒図法の1つの測地線です。明らかにそれは正弦波ではありません:
(背景画像はhttp://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Equirectangular-projection.jpg/800px-Equirectangular-projection.jpgから取得されます。)
すべての正距円筒図法はこの投影のアフィン変換(x座標は経度、y座標は緯度)であり、正弦波のアフィン変換は依然として正弦波であるため、どのような形の測地線も期待できません正弦波である正距円筒図法(水平線としてプロットされる赤道を除く)。それでは、最初から始めて、正しい式を計算しましょう。
そのような測地線の方程式を
latitude = f(longitude)
関数fが見つかります。(このアプローチは、そのような形式では記述できない経線を既にあきらめていますが、そうでなければ完全に一般的です。)3Dデカルト座標(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
lの値が何であっても。f(l)を解くと
f(l) = ArcTan(-(a cos(l) + b sin(l)) / c)
提供さcがゼロではありません。明らかに、cが0に近づくと、180度異なる子午線のペアが得られます。正確には、最初に放棄した測地線です。だから、すべてが良いです。ちなみに、外観にもかかわらず、これはa / cとb / cに等しい2つのパラメーターのみを使用します。
すべての測地線は、経度0度で赤道を横切るまで回転できることに注意してください。これは、f0(l-l0)でf(l)を記述できることを示します。l0は赤道交差の経度、f0は子午線での測地線交差の表現です。これから、同等の式を取得します
f(l) = ArcTan(gamma * sin(l - l0))
ここで、-180 <= l0 <180度は赤道交差の経度(測地線が東に移動するときに北半球に入る)であり、ガンマは正の実数です。これには、子午線のペアは含まれません。ガンマ = 0の場合、経度l0に開始点がある赤道を指定します。一意のパラメーター化が必要な場合、その場合は常にl0 = 0を使用できます。今回はl0とガンマによって指定された2つのパラメーターがまだあります。
イメージの作成には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
)大円が自然に(それまで「極性」であり、正反対のポイントのペアにそれぞれ1対応)のみ2つのパラメータを持っている場合?