N88-BASICで惑星の軌道(番外編5)

 

昔、C言語で作ったレイトレーシング

による宇宙です。

1AU(地球の軌道長半径)を1/2000

にした凝縮した太陽系を表示

しています。

月は1/30の距離です。

太陽は地球から見た月と同じ大きさに

見える大きさにしてあります。

もちろん1/1表示も可能です。

今回は小惑星や彗星を巨大化し、

レイトレーシングが得意な、

木星に落ちる陰を表示しました。

途中オリオン座が見えます。

 

 

N88-BASICで惑星の軌道(番外編4)

 

昔、C言語で作ったレイトレーシング

による宇宙です。

(VL-BASICに搭載しているものと

同じものです。)

 

1AU(地球の軌道長半径)を1/100

にした凝縮した太陽系を表示

しています。

月は1/10の距離です。

太陽は地球から見た月と同じ大きさに

見える大きさにしてあります。

 

もちろん1/1表示も可能です。

 

地球に着陸して、太陽をかすめ、

光速で土星を横切り、ターン

しています。

 

バックに見える星々もデータによる

表示ですので、オリオン座など

実際の星座も見ることができます。

 

テクスチャーはクレジットの表示で

使用しても良いそうですが、

問題があれば、すぐに消します。

 

 

 

N88-BASICで惑星の軌道(番外編3)

 

彗星の場合は、楕円軌道の他に

放物線、双曲線軌道があります。

 

放物線と双曲線軌道は、楕円軌道とは

ケプラー方程式など異なります。

 

円、楕円、放物線、双曲線、直線軌道を

一つの式で表す方法を発表している方が

いらっしゃいます。

ネットで見つけたので勝手にリンク貼っておきます。

2つとも同じ方が書かれているようです。

http://www6338.la.coocan.jp/astrodynamics/anomaly.pdf

上記の元となる論文

http://www.asj.or.jp/geppou/archive_open/1999/pdf/19991002c.pdf

 

 

N88-BASICで惑星の軌道(番外編2)

 

昔、C言語で作った宇宙です。

恒星、惑星、小惑星、準惑星、衛星

彗星、等の星や、星座、銀河などを

表示していて、宇宙空間を自由に

移動できます。

 

星はレイトレーシングで描画して

いますので、星に落ちる星や環の陰

なども表示されますが、

太陽や、惑星などはネットなどから

ダウンロードしたテクスチャーを

貼っていて、著作権の問題で表示

出来ないのが残念です。

 

惑星の軌道などの線や銀河などの点は

OpenGLで描画しています。

 

これほど多くの星をレイトレーシング

表示してもCPUのみでほぼリアルタイム

で宇宙空間を自由に移動できます。

C言語はやはり速いですね。

 

CPUリアルタイムレイトレーシングは、

もともと、土星に落ちる環の陰や地球に

落ちる月の陰をリアルに表示した宇宙の

中を自由に移動できるものを作ろうと思い

開発しました。

 

レイを飛ばす本数をいかに減らすかで

高速化しています。

例えば

宇宙に見える星々の間の何もない空間には

レイを飛ばしていません。

計算式の工夫や、関数の代わりにマクロ

を使うなどいろいろな方法で高速化

しています。

当時のサンプル画像を、200MHzCPUで

1画面10~20秒程の速度を

1秒間に2~4画面ぐらいまで

高速化しました。

現在使用中のCPUは2GHz2Core(ファンレス)

PCは当時の20倍速なので、簡単な

図形ならリアルタイムで表示できます。

 

2GHz8Coreなら当時の80倍速。

こんなPCがファンレスで発売されたら

欲しい。

 

地球から離れると、オールトの雲が現れ

やがて描画が陳腐ですが天の川銀河が

見えてきます。

他の銀河も表示しています。

 

地球には大気があり、着陸も可能です。

地球と一緒に自転しながら地球から

日食を見る事も出来ます。

太陽などの他の星にも着陸できます。

 

軌道データは、理科年表(国立天文台)

などを使用しています。

年は2000年前後位だったと思います。

 

 

以後、余談です。

地球と一緒に自転はしませんが、

地球から日食を見たり土星の環の

陰を表示するBASICプログラム

(レイトレーシング表示)を公開しています

 

VL-BASICとサンプル(blg~.zip、nl~.zip)は

以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com

Readme.txtを読んで遊んで下さい