「極座標(赤経・赤緯)と直交座標(方向余弦)の変換 (1)」
「極座標(赤経・赤緯)と直交座標(方向余弦)の変換 (2)」
「極座標(赤経・赤緯)と直交座標(方向余弦)の変換 (3)」 (この記事)
「極座標(赤経・赤緯)と直交座標(方向余弦)の変換 (4)」
「趣味の天文計算・記事一覧」
--------
今回は直交座標(方向余弦)を極座標(赤経・赤緯等)に変換する方法です。
xp = r * cos(δ) * cos(α)
yp = r * cos(δ) * sin(α)
zp = r * sin(δ)
という関係があります(方向余弦の場合は r=1 です)
ので最後の式から
δ = asin(zp/r)
となります。Nとδの範囲は
-1 ≦ N ≦ 1
-π/2 ≦ δ ≦ π/2
でありNとδは一対一で対応していますからこれで問題ありません。
一方αの方は注意が必要です。
二番目の式を最初の式で割ると
M/L = sin(α) / cos(α)
ですから
α = atan(yp/xp)
となるのですが
-1 ≦ xp ≦ 1
-1 ≦ yp ≦ 1
ですのでxpとypの値は(符号が)違うのにαの値は同じになってしまうことがあります。
赤経のように 0 ≦ α < 2π であれば
xp ≧ 0、yp ≧ 0 のとき α = atan(yp/xp)
xp < 0 のとき α = atan(yp/xp) + π
xp ≧ 0、 yp < 0 のとき α = atan(yp/xp) + π*2
のようなことになります。
こういうときはatan2を使えば少し簡単になります。
yp ≧ 0 のとき α = atan2(xp,yp)
yp < 0 のとき α= atan2(xp,yp) + π*2
(経度のように)-π ≦ α ≦ πで表記してもよければatan2を使う場合は
α = atan2(xp,yp)
だけで済みます。
またいずれの場合もゼロ割りを避けるため
xp=0、yp > 0 のとき α = π/2
xp=0、yp < 0 のとき α = -π/2
とする必要があります。
xp=0、yp=0のときはαは意味を持ちませんので上のどちらかに含めてかまいません。