日本語対応の弾道軌道計算アプリケーション
https://key.github.io/ballistic-js/
- 🎯 空気抵抗を考慮した正確な弾道計算
- 📊 リアルタイムな軌道の可視化
- 📏 距離別の速度・エネルギー表示(50m, 100m, 150m, 200m, 300m)
- 🌡️ 環境条件(気温、気圧、湿度、標高)による空気密度の自動計算
- 💨 風速・風向の影響を考慮した軌道計算
- 📥 CSV形式でのデータエクスポート機能
- 🖱️ マウスホバーによる軌道上の詳細情報表示
- 🇯🇵 完全日本語対応のユーザーインターフェース
- ⚙️ カスタマイズ可能な入力パラメータ:
- 初速度 (fps)
- 発射角度
- 初期高度
- 弾体質量
- 抗力係数
- 断面積
- 環境条件(気温、気圧、湿度、標高、風速、風向)
本アプリケーションで使用される弾道計算の数学的基礎を以下に示します。
-
$v_0$ : 初速度 (m/s) -
$\theta$ : 発射角度 (rad)
-
$C_d$ : 抗力係数 -
$\rho$ : 空気密度 (kg/m³) -
$A$ : 断面積 (m²) -
$v$ : 相対速度 (m/s)
-
$m$ : 弾体質量 (kg) -
$g$ : 重力加速度 (9.81 m/s²)
-
$\Delta t$ : 時間ステップ (0.01秒)
-
$P$ : 観測地点の気圧 (hPa) -
$h$ : 標高 (m)
-
$T$ : 気温 (℃) -
$E_s$ : 飽和水蒸気圧 (hPa)
-
$RH$ : 相対湿度 (%)
-
$P_d$ : 乾燥空気の分圧 (Pa) =$(P_{sea_level} - E) \times 100$ -
$P_v$ : 水蒸気の分圧 (Pa) =$E \times 100$ -
$M_d$ : 乾燥空気のモル質量 (0.0289644 kg/mol) -
$M_v$ : 水蒸気のモル質量 (0.01801528 kg/mol) -
$R$ : 気体定数 (8.314462618 J/(mol·K)) -
$T_{abs}$ : 絶対温度 (K) =$T + 273.15$
- 大気モデル: International Standard Atmosphere (ISA), ISO 2533:1975
- マグヌス式: Magnus, G. (1844). "Versuche über die Spannkräfte des Wasserdampfs". Annalen der Physik und Chemie. 61: 225–247.
- 弾道係数: McCoy, R. L. (1999). "Modern Exterior Ballistics". Schiffer Publishing.
- 数値積分法: Euler, L. (1768). "Institutionum calculi integralis". Impensis Academiae Imperialis Scientiarum.
- Vanilla JavaScript (ES6+)
- HTML5 Canvas API
- CSS3
- Jest (テスティング)
- GitHub Actions (CI/CD)
- Node.js 18.x 以上
- npm
# リポジトリのクローン
git clone https://github.com/key/ballistic-js.git
cd ballistic-js
# 依存関係のインストール
npm install
# 単体テストの実行
npm test
# カバレッジレポート付きテスト
npm run test:coverage
# ウォッチモードでのテスト
npm run test:watch
# Python 3を使用
python -m http.server 8000
# Node.jsを使用(http-serverをグローバルインストール済みの場合)
http-server
ブラウザで http://localhost:8000
を開いてアプリケーションにアクセスします。
プルリクエストを歓迎します。大きな変更の場合は、まずissueを作成して変更内容について議論してください。
- フォーク
- フィーチャーブランチの作成 (
git checkout -b feature/amazing-feature
) - 変更のコミット (
git commit -m 'feat: 素晴らしい機能を追加'
) - ブランチへのプッシュ (
git push origin feature/amazing-feature
) - プルリクエストの作成
このプロジェクトは MIT ライセンスのもとで公開されています。詳細は LICENSE ファイルを参照してください。
ballistic-js contributors
Made with ❤️ and physics