Yet another 太陽系プログラム


以前, hitchhiker というプログラム を紹介したが, 今回紹介するプログラムは, それと同種の, しかし, もう少し凝ったプログラムだ.

freshmeat という, アプリケーション情報を猛烈にたくさんあつめたところがあ るが, そこで, 皆既日食の計算をやってくれるプログラムを探してたのだが, 代わりに見付かったのがこれだった. どっかに interactive に使える食現象のプログラム, ないかなあ. 対象のペアに基づいて, 次のデータを計算してくれるプログラムだ.

対象のペアを 月と太陽にすれば, 日食を計算することになるが, 月と木星とかでも別に悪くないわけでして. 星食が計算できる. と. Xephem でも, これらの計算はできるんですけどね. 観測地点を探すという用途にかぎれば, あまり使いやすいとは言えないのだ. とくに, 観測地点の設定は, マウスを使うと画面 1ドットでしか指定できないが, 地図が拡大できないので細かく計算するには, メイン画面から数値入力しかない (のかな?). unixなら, こういうのがありそうなもんだけどな. ちなみに, Windows なら, 日食専門だが pngアニメを生成するやつとかあるん だぜ.

まあ, nasaからデータを持ってきとけばいいんですけどね. それにもとづいて, 最後の詰めで xephem を使うと.

ところで, ここで紹介するプログラムだが, やはり GL(というか Mesa) で, テクスチャを貼った惑星をレンダリングする ものであり, 惑星の配置等は, xephem のアルゴリズムを使っている. 全体的な使い勝手は, hitchhiker 1.0 よりもすぐれているようだ. とくに, hitchhiker は日付がソースコードに magic number で埋め込みで, し かも惑星の配置はでたらめだが, このプログラムはその辺がしっかりしているの で, もうすこし理系向けである. GLだから, 拡大縮小も自由にできるので, 画面の片隅で, 地球が回ってたりして, 太陽系をパソコンに飼ってる感じだ. ただし, 正確なのは惑星の配置だけで, 衛星とかはけっこうでたらめだそうだ. 今調べてみたら, 木星の自転もでたらめだったが, 地球の自転は正確に計算され ていた. 画面も用意した. これは, 太陽から見た地球 で, こっちは土星 .

コンパイルには, 当然,Mesaが必要だ. あと, テクスチャが jpeg で提供されて いるので, jpeg のライブラリも. Mesa 3.0 と GLut 3.7 が必要で, gulutは MesaDemo3.0 に含まれている. プログラム本体は こちら から貰ってこれる. スペインのサイトなのかな?でも, 結構速かったよ.

コンパイルに必要なものは以上だが, makeには若干の注意が必要だ. 近頃流行りの ./configure ではなく, Makefileを直接編集するのだ. デフォルトの Makefile はジョイスティックをサポートする Linux カーネルに 合わせたもので, そのままでは Makeできない. 他にも若干おかしなところがあっ たので, それを修正した Makefileを ここ に用意した. Makeするひとは使うと良いかも. GL を /usr/local 以下に導入した場合は, これを使えば make 一発でしょう. GL を変なディレクトリに入れた場合は, LD_LIBLARY_PAHT を設定するのも忘れ ずにな. わしの場合のリンク先はこうじゃ.

aya:/usr/local/share/ssystem-1.5%ldd ./ssystem
        libjpeg.so.6 => /usr/lib/libjpeg.so.6 (0x4000b000)
        libglut.so.3 => /usr/local/lib/libglut.so.3 (0x4002a000)
        libMesaGLU.so.3 => /usr/local/lib/libMesaGLU.so.3 (0x4005d000)
        libMesaGL.so.3 => /usr/local/lib/libMesaGL.so.3 (0x40073000)
		以下略
なかなか楽しいプログラムですが, 付属の惑星テクスチャが, これまたなかなか ナイスなので, これを背景にすると, わりとシュールで良い感じ.

カメラモードをいろいろ変えて, 今の太陽系をうろつこう. まあしかし, ルックス重視のこういうプログラムも悪くないが, こういうのを使った後に xephem を使うと, その機能の強力さと計算の正確さに, ひたすら恐れ入る.