26 lines
682 B
Python
Executable file
26 lines
682 B
Python
Executable file
#!venv/bin/python
|
|
from argparse import ArgumentParser
|
|
from pathlib import Path
|
|
from typing import cast
|
|
|
|
from data import parse_csv, Animator
|
|
|
|
|
|
class Args:
|
|
file: Path
|
|
gravity: float
|
|
|
|
|
|
def main(file: Path, gravity: float) -> None:
|
|
pos, vel, rad = parse_csv(file)
|
|
Animator(pos, vel, rad, gravity)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = ArgumentParser(description="Gravitation simulation")
|
|
|
|
parser.add_argument("-f", "--file", type=Path, default="data/2d/simple.csv", help="The starting state of the simulation")
|
|
parser.add_argument("-g", "--gravity", type=float, default=1., help="The strength of gravity")
|
|
|
|
args = cast(Args, parser.parse_args())
|
|
main(args.file, args.gravity)
|