JavaFXによる太陽系シミュレーターです。
以前のProcessing版(旧プロジェクト)から移行して再設計・実装を行っています。
旧バージョンのソースはこちら: https://github.com/0x000x7f/project2
mvn clean javafx:run- Java 21
- JavaFX 21.0.1
- Maven 3.9.6
- 太陽系の天体表示
- 太陽
- 惑星(水星~冥王星)
- 月(地球の衛星)
- 軌道の描画
- 楕円軌道の正確な表現
- 黄道面に対する傾斜角の考慮
- 離心率の考慮
- カメラ操作
- フォーカス
- 移動
- ズーム
-
軌道計算の改善
- 計算順序の最適化(位置計算→角度更新)
- 2次元表示に適した軌道傾斜の計算方法を実装
- 角度の正規化による数値誤差の低減
-
表示の改善
- 惑星のラベルを軌道上に配置
- 軌道とラベルの色を20%明るく調整
- 衛星(月)のラベルを非表示に変更
-
冥王星の実装
- 最も大きな離心率(0.25)を持つ軌道
- 最も大きな軌道傾斜角(15.5度)
- 最も遅い公転速度(0.00006)
MIT License
- 黄道面(ecliptic plane)を基準面として使用
- 黄道面:地球の公転軌道を含む平面
- 太陽系の天体の軌道は、この黄道面に対する傾斜角で表現
- 地球の軌道傾斜角を0度として、他の天体の傾斜角を相対的に表現
- 太陽系の天体表示
- 太陽
- 惑星(水星~冥王星)
- 月(地球の衛星)
- 軌道の描画
- 楕円軌道の正確な表現
- 黄道面に対する傾斜角の考慮
- 離心率の考慮
- カメラ操作
- フォーカス
- 移動
- ズーム
- デバッグ情報表示(
Dキー) - ヘルプ情報表示(
Hキー) - 構造情報表示(
Vキー)
- 軌道の表示/非表示(
Oキー) - ラベルの表示/非表示(
Lキー) - 中心線の表示/非表示(
Cキー) - 距離ガイドの表示/非表示(
Gキー)
- 数字キーによる個別の天体の表示/非表示
1: 水星2: 金星3: 地球4: 火星5: 木星6: 土星7: 天王星8: 海王星9: 冥王星0: 太陽
- 全体の表示/非表示(
Tキー)
-
太陽
- 位置: 画面中央
- サイズ: 半径30
- 色: 黄色
-
惑星
- 水星: 距離100, 半径5, 灰色
- 金星: 距離150, 半径8, オレンジ
- 地球: 距離200, 半径10, 青色
- 火星: 距離250, 半径7, 赤色
- 木星: 距離350, 半径20, オレンジ
- 土星: 距離450, 半径17, 黄色
- 天王星: 距離550, 半径12, シアン
- 海王星: 距離650, 半径12, 青色
- 冥王星: 距離750, 半径4, 薄灰色
-
月
- 地球からの距離: 20
- サイズ: 半径3
- 色: 薄灰色
-
離心率
- 水星: 0.206
- 金星: 0.007
- 地球: 0.017
- 火星: 0.094
- 木星: 0.049
- 土星: 0.057
- 天王星: 0.046
- 海王星: 0.011
- 冥王星: 0.25
-
軌道傾斜角(度)
- 水星: 7.0
- 金星: 3.4
- 地球: 0.0
- 火星: 1.9
- 木星: 1.3
- 土星: 2.5
- 天王星: 0.8
- 海王星: 1.8
- 冥王星: 15.5
- 問題: 太陽の表示/非表示が機能しない
- 原因: 表示制御の条件分岐が不適切
- 解決: 個別の表示状態と全体の表示状態の両方を考慮するように修正
- 問題: 太陽が画面左上に表示される
- 原因:
setCenterの呼び出しが抜けていた - 解決:
initializeSolarSystem()で中心位置を設定
- 問題: 月が太陽を中心に回ってしまう
- 原因: 月の軌道計算が不適切
- 解決:
Moonクラスを別途実装し、地球を中心に回るように修正
- 問題: 多数の天体描画時の処理負荷
- 解決: 描画処理の最適化と条件分岐の整理
- テクスチャマッピングの実装
- アニメーションの改善
- 多言語対応
- 外部設定ファイルのサポート
- パフォーマンスのさらなる最適化
- Java
- JavaFX
- Maven
mvn clean package
mvn javafx:run- JavaFXプロジェクト構造:✅
- 描画Canvasの移行:✅
- UI構築・クリック選択:🔄 実装中
- YAMLによる外部定義:⏳ 未着手
詳細な移行背景と計画は README_solar_migration.md をご覧ください。
- 太陽系の3D表示
- 惑星の公転と自転
- カメラ操作(ズーム、パン)
- 軌道表示
- デバッグ情報表示
- Java 21(21.0.7)
- Maven 3.9.6
- JavaFX SDK 21.0.1
SolarSystem/
├── src/
│ └── main/
│ ├── java/
│ │ └── solar/
│ │ ├── MainFX.java
│ │ ├── SolarSystemManager.java
│ │ ├── ...
│ └── resources/
│ └── (空でもOK)
├── pom.xml
├── README.md
├── README_solar_migration.md
└── docs/
├── architecture_v_2.md
└── requirements_v_2.md
このプロジェクトは、ProcessingからJavaFXへの移行プロジェクトです。
詳細は README_solar_migration.md を参照してください。