プラネタリウムアプリを開発したいという人はあまりいないかもしれません。
プログラミングの知識に加えて、数学や天文の知識も必要になるので、ちょっと敷居が高いかもしれません。
それでも、星空を描くことに挑戦したい!いうアナタのために、学習の参考になりそうな本を少し紹介したいと思います。
すべて私の本棚にもある本です。
天文計算をプログラムにする
マイコン宇宙講座―楽しい軌道計算プログラム
PCシリーズ版 マイコンが解く天体の謎―PC‐9801/8801/8001 mkII
こちらの2冊は、プラネタリウムアプリのバイブルと言っていいでしょう。著者は中野主一氏。天文計算、軌道計算の第一人者で、業界で知らない人はいません。両方ともすでに絶版だと思いますが、中古でもオークションでも、ぜひ手に入れてほしい本です。
マイコンによる天体観測シミュレーション入門―グラフィックで再現する星座・惑星の観測ツール集 (Computer science series (No.05))
Turbo Cで作る天体観測グラフィカルツール集
こちらの2冊も絶版で、特に「TURBO Cで~」の方は中古すらなかなか見当たりません。(TURBO Cというのは、当時販売されていたMS-DOS上で動くCコンパイラ製品です)
著者は望遠鏡メーカーに勤務されていた方で、初学者にもわかりやすい内容です。特に「銀河や星雲星団を簡易CGアートで描く」という内容はとてもおもしろくて、高校の文化祭で企画したプラネタリウム上映では、ドームの一部を切り欠いてモノクロディスプレイを埋め込み、この本にあるプログラムで描いたアンドロメダ銀河を投影しました。
「星座早見盤の印刷データを作る」というテーマもすごく役に立ちました。
パソコン天文教室―天体の位置計算からシミュレーションへ (1984年)
13人の著者が各単元を執筆しています。「彗星や流星の軌道シミュレーション」「皆既日食のシミュレーション」「銀河の相互作用のシミュレーション」など、専門性の高い題材も扱われています。中野主一氏の本と一緒に読むと理解が深まるかも。
基本的な天文計算を学ぶ
天文の計算教室
天体の位置計算
日の出・日の入りの計算―天体の出没時刻の求め方
この3冊は今でも入手できます。特定のプログラム言語や開発環境に依存した内容ではありません。一部古い内容もありますが、天文計算の基本を広く学ぶことができます。
しかし、天文計算の良書はどれも古い出版年のものが多く、最近の刊行はあまり目にしません。それ以上の内容はもう書けないのか、それとも需要がないのか。最新のフレームワークやプログラミング言語を使った解説本が出たら買うんだけどな。
プログラミングを学ぶ(JavaScriptの場合)
JavaScript 第6版
プログラミング HTML5 Canvas ―ウェブ・モバイル・ゲーム開発者のためのアプリケーション開発ガイド
初めてのThree.js 第2版 ―WebGLのためのJavaScript 3Dライブラリ
このあたりは、自分の使っているプログラミング言語や開発環境に合わせて選んでもらうといいと思います。
私は現在はJavaScriptで開発することがほとんどなので、この3冊を愛読。いずれも、オライリー・ジャパンのいわゆる「動物の本」です。
これらの本を読んでみると、「星ってこうやって描画するのかー」というのが見えてくると思います。三角関数や射影行列とかがチンプンカンプンだとちょっと辛いかもしれませんが、そんなアナタはまず高校数学の教科書を押し入れから引っ張り出してきましょう(だいたい捨ててるけどね)
もちろんまだこれは基礎的な段階で、この先にはOpenGL/WebGLとかDirectXとかを駆使した3DリアルタイムCGプログラミングの世界が待っているわけです。
たくさんの人がプラネタリウムアプリを作れるようになったら、その人たちとチームを組んで、宇宙を自由に飛び回ることのできる巨大なプラネタリウムソフト(スペースエンジン)を独自に開発する、それが私の壮大な夢の一つだったりします。
ということで、みなさん、がんばってください!
(他力本願・笑)