極座標と直交座標の変換(方向余弦) (3/3) | 池袋駅南口の天文計算

池袋駅南口の天文計算

小望遠鏡とデジタルカメラを使った天体観測とExcelでできる天文計算のブログでした (^^;;
新規の記事は書きませんがよろしくおねがいします m(._.)m

  「極座標(赤経・赤緯)と直交座標(方向余弦)の変換 (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のときはαは意味を持ちませんので上のどちらかに含めてかまいません。