プログラムで銀河系を描画してみた

2022/10/26

processing プログラム 宇宙

プログラムで銀河を描画してみました。


渦巻銀河は何本かの腕を持っています。 昔は扇風機のように、この渦巻構造がそのまま回転しているものだと思っていました。


でもよく考えるとそんなわけないですよね。銀河は何千億個もの恒星で構成されています。白く見えるのは一つ一つが恒星です。そしてこれら恒星はみんな、銀河の中心の周りを回っています。


ちなみに我らが太陽系は、天の川銀河の中心から2万5800光年ほど離れた外縁部にあって、およそ2億5000万年の周期で銀河の周りを回っているそうです。このような恒星が何千億個も、様々な軌道を回っていて、その全体を見ると渦巻きに見えるというわけです。



プログラムで描画した仮想銀河系

渦巻き構造の仕組み


上の画像は、プログラムによって200万個の恒星をプロットして作り出したものです。そして一つ一つの恒星は銀河中心の周りを、たとえば下の図のように楕円軌道で回っているとしています。この図は軌道を回る星の位置を一定時間間隔で示したものです。銀河中心から離れたところではゆっくりと、近づいたところでは速く動きます。


この図は一つの星の動きですが、同じ軌道上にたくさんの星がある場合、同じような配置になります。ゆっくり動くところでは渋滞して星の密度が濃くなり、速く動くところでは、星の密度が薄くなります。


下の図では長軸が真上を向いていますが、この長軸の方向と、長軸の長さに関連を持たせると、渋滞領域、すなわち星の密度が濃いところが渦巻き状になります。このようにしてプロットしたのが上の仮想銀河系です。


具体的には1万の軌道をランダムに生成し、一つの軌道にそれぞれ200個の星を配置しましたた。つまり200万個の星をプロットしています。軌道はランダムですが、軌道の長軸の方向(角度)と長軸の長さは比例するようにしています。その結果、密度の濃い部分が渦巻き状になります。



銀河以外の星の描画


銀河だけでは寂しいので、前景に星をばらまいてみました。星の位置は全くランダムにしました。そして星の色は、青白、白、黄、オレンジ、赤 の5色とその中間色を、ランダムに決めています。


星の明るさは大きさで表現し、大きさ1から6までを6等星から1等星にみたて、数がべき分布に従うよう、つまり暗くなるほど数が多くなるよう、おなじく乱数を使って決めました。


もっともらしく見えているかと思います。

余談


太陽系は銀河系を2億5000万年の周期で回っているということで、定期的に銀河の腕の部分を通過します。この部分は星の密度が濃い場所なので、薄い部分とは環境が異なります。


このため例えば宇宙線が増えるなどの現象がおきて気候変動を引き起こすという説があるようです。


そうはいっても1億年とかの単位での現象なので、我々の実生活には全く関係なさそうで心配することはありません。それにしても壮大な話です。


星の運動についてのプログラムメモ


\(r(φ)=\frac{λ}{1+ε\cos φ}\)・・・\(λ=a(1-ε^{2})\)

\(r(θ)=a(1-ε\cos θ)\)

\(2πt=θ-ε\sin θ\)・・・\(0\leqq t<1\)

\(φ=\arccos (\frac{\cos θ - ε}{1-ε\cos θ})\)

\(π\leqq θ<2π\)の時、\(φ=2π-φ\)


1.tからθをニュートン法で求める

2.θからrとφを求める

3.x,yを求める

銀河の腕を作るために、λとα(位相)は正比例させる

\(α=map(λ,λ_{min},λ_{max},0,2π)\)