2011-03-04 6 views
1

私は太陽系をOpenGLで作っています。問題は、実際の惑星の距離と大きさが異なるため、描画が難しいことです。私は、数値がより近づくように一連の数値を「圧縮」する方法がなければならないと考えていましたが、その相対的な違いは同じままです。したがって、スケールの一方の端では、数値はそのままで、スケールの反対側ではすべての数値が同じ値に収束します。これは倍率を変更した後に量を加算したり引いたりするしか方法がわからないということです。太陽系の惑星をどのように表示するには?

+0

「難しい」とは何ですか?より精度が必要なのですか、より多くの範囲が必要ですか?どの言語を使用していますか? – tenfour

+0

例えば、太陽は冥王星の600倍の大きさなので、それを描くと画面全体が太陽で満たされ、冥王星を見ることができなくなります。 – eggbert

+1

2つの惑星を同時に見ることはできません適切な長さの目盛りを使用する場合は時間をかけてください。もちろん、すべての惑星(と太陽)を2Dスクリーン(テーブルの中)に並べて描画したいだけなら、あなたはまた、(妥当な) 「直径」の適切な比率。 –

答えて

2

今説明した内容は、logrithmic scaleです。

私はそれがここで最高のオプションだとは分かりません。より良い選択肢は、単純に良いUIを持つことです - 小さな惑星がある場所のの視覚インジケータ(例えば、中空の緑色の円、または虫眼鏡の画像)を使って、惑星を縮尺して描きます。ユーザーがビジュアルインジケーターの上にマウスを置くと、惑星を拡大したり、クリックしたときに惑星を拡大したりできます。

または、マウスホイールでズームインするオプションを指定します。

また、小さな惑星は小さく見え、大きな惑星は大きく見えますが、惑星は一定の縮尺ではないことに注意してください。

hereは典型的なテキストブックの画像であり、惑星は縮尺通りではなく、thisは惑星(少なくとも惑星ではなく、それらの軌道ではない)のように見えます。

関連する問題