エアガンの弾道計算 PC用アプリ #
ウェブツール #
下記からwebツールとして利用することができます(20240525)。
PC用アプリ #
エアガンの弾道計算 PC用アプリを作成しました。
GUIはこのような感じになっています。
1. 実行方法 #
- 下記のリンクからzipをダウンロードします。
airsoft_ballistics_v1.0.2.zip (76MB)
-
ダウンロード後に解凍すると、下記の3つのファイルが得られます。
airsoft_ballistics_v1.0.0/ ├ airsoft_ballistics.exe ├ LICENSE └ VERSION
-
airsoft_ballistics.exe
を実行します。 -
パラメータを設定してCalculateを押します。
-
計算結果が
airsoft_ballistics.exe
があるフォルダに下記の通り出力されます。airsoft_ballistics_v1.0.0/ ├ airsoft_ballistics.exe ├ LICENSE ├ VERSION ├ input_parameters.txt ├ out_approx.txt └ x_z.png
また、設定でOutput all figures
にチェックを入れると、下記の通り結果が出力されます。
```
airsoft_ballistics_v1.0.0/
├ airsoft_ballistics.exe
├ LICENSE
├ VERSION
├ input_parameters.txt
├ out_approx.txt
├ x_t.png
├ x_y.png
├ x_z.png
├ y_z.png
├ x_vx.png
├ x_vy.png
├ x_vz.png
├ x_v.png
├ x_wx.png
├ x_wy.png
├ x_wz.png
└ x_w.png
```
2. ファイルの説明 #
ファイルと出力されるデータを説明します。
ファイル | 説明 | 出力に関係するパラメータ |
---|---|---|
airsoft_ballistics.exe | 実行ファイル | - |
LICENSE | ライセンスファイル | - |
VERSION | プログラムバージョン | - |
input_parameters.txt | (出力)計算時のパラメータ | - |
out_exact.txt | (出力)計算結果 テキスト | Solving EOM |
out_approx.txt | (出力)計算結果 テキスト | Solving EOM |
out_approx_w_solved.txt | (出力)計算結果 テキスト | Solving EOM |
out_no_rotation_decay.txt | (出力)計算結果 テキスト | Solving EOM |
x_t.png | (出力)横軸: 時間(s), 縦軸: 位置x(m) | Output all figures |
x_y.png | (出力)横軸: 位置x(m), 縦軸: 位置y(m) | Output all figures |
x_z.png | (出力)横軸: 位置x(m), 縦軸: 位置z(m) | Output all figures |
y_z.png | (出力)横軸: 位置y(m), 縦軸: 位置z(m) | - |
x_vx.png | (出力)横軸: 位置y(m), 縦軸: 速度x(m/s) | Output all figures |
x_vy.png | (出力)横軸: 位置y(m), 縦軸: 速度y(m/s) | Output all figures |
x_vz.png | (出力)横軸: 位置y(m), 縦軸: 速度z(m/s) | Output all figures |
x_v.png | (出力)横軸: 位置y(m), 縦軸: 速さ|v|(m/s) | Output all figures |
x_wx.png | (出力)横軸: 位置y(m), 縦軸: 回転量x(rot/s) | Output all figures |
x_wy.png | (出力)横軸: 位置y(m), 縦軸: 回転量y(rot/s) | Output all figures |
x_wz.png | (出力)横軸: 位置y(m), 縦軸: 回転量z(rot/s) | Output all figures |
x_w.png | (出力)横軸: 位置y(m), 縦軸: 回転量の大きさ|w|(rot/s) | Output all figures |
3. ソースファイル #
exeの実行にソースファイルは必要ありません。 しかし、細かな調整をしたい方もいるかと思いますので、ソースを公開します。
(python) airsoft_ballistics_src_v1.0.2.zip (~400kB)
main_ballistics.py
のcompute_ballistics(...)
がメインの関数となります。
元々compute_ballistics()
をmain関数としてこれを直接pythonで実行していましたが、それをGUIで制御するためにairsoft_ballistics.py
でwrapした、という構造になっています。
詳細はコードを見て下さい。ざっくりと下記の構造となっております。
フォルダ | 説明 |
---|---|
class_def | クラス定義。ほぼ読み込み専用の構造体として使用。 |
physical_quantities | 物理量の計算。主に流体に関する物理量。 |
ivp_functions | 初期値問題の計算。運動方程式はこの中。 |
output_functions | テキストデータの出力関数。 |
MITライセンスで公開しています。