mirror of
https://github.com/NotAShelf/projectile-simulation.git
synced 2024-11-22 13:20:47 +00:00
Simulate the trajectory of a projectile while accounting for air resistence.
.github | ||
projectile | ||
.envrc | ||
.gitignore | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
main.py | ||
README.md | ||
requirements.txt | ||
setup.py | ||
shell.nix | ||
test_main.py |
Projectile Simulation
This project simulates the motion of a projectile with air resistance.
Installation
- Clone this repository.
- Install the required packages using pip:
pip install -r requirements.txt
Usage
Run the main.py
script:
python main.py
Or alternatively, with your own parameters:
python main.py --g 9.8 --C_d 0.02 --v_init 150 --theta 45 --h_init 20 --dt 0.01 --t_end 10
Arguments
--g
: The acceleration due to gravity in m/s^2. Default is 9.81.--C_d
: The drag coefficient. Default is 0.01.--v_init
: The initial velocity in m/s. Default is 100.--theta
: The launch angle in degrees. Default is 180.--h_init
: The launch height in meters. Default is 10.--dt
: The time step in seconds. Default is 0.01.--t_end
: The total time of the simulation in seconds. Default is 10.
Testing
Tests can be invoked by simply running pytest
in the directory. If you are contributing something new to the program, do make sure
that it is appropriately tested in test_main.py
.