質問: 例えば、半径 R=1 の地球儀を考え、下記の定義を行う事によって座標系を定義したとします。 [座標の定義] + O(0, 0, 0) ... 地球儀の中心 + X(1, 0, 0) ... 北緯 90°の点 + Y(0, 1, 0) ... 緯度: 0, 経度: (西経)90 の点 + Z(0, 0, 1) ... 緯度: 0, 経度: 0 の点 -- この時、地球儀表面上の点 P(x, y, z) が与えられた場合、その緯度(a)と経度(b)を求める方法を教えて下さい。 -- あと、この(a),(b)の値(量)は緯度と経度の定義が変わらなければ、唯一の値になると思うのですが、例えば緯度と経度の定義が下記のように反対になったとき(変わったとき)は、当然 (a),(b)の値も変わると思います。 その違いはイメージとしては判るのですが、うまく他人に説明できません。どなたかうまい説明の方法をご教示いただけないでしょうか。 [反対の定義] 通常の定義では、 (1) 経度を表す(地球儀上の)線はどの線を採っても 北緯90°(1, 0, 0) と 南緯90°(-1, 0, 0) のニ点を通ります。よって、どの経度の線同士を採っても互いに交叉します。 (2) 一方、緯度を表す線は、その線同士一切交わりません。 例えば、上記(1)(2)の特徴を反転して、緯度は必ず (0, 1, 0) と (0, -1, 0) のニ点を通り、経度は必ず他の(経度の)線と交わらないとする。 -- よろしくお願いします。
回答: #3です。 前回の回答に勘違いがあったので訂正します。 > + a = arccos(x) では、北緯90°が 0°になってしまいませんか? > + arccos() 単体だけでは 0~180°の値しか求まらないと思うのですが如何でしょうか? この二点については質問者の方の指摘は全く正しいです。正しくは a = arcsin(x) b = arcsin(y/√(y^2+z^2)) とすべきですね。これでしたらb=270°の時にも-90というように出ます。 尚、この式は#2の方の式を解いた物と完全に一致します。