Clean up and comment

This commit is contained in:
Michael Bradley 2025-01-02 01:42:26 +13:00
parent 8bb6ba19d5
commit 6822df0432
Signed by: MichaelBradley
SSH key fingerprint: SHA256:cj/YZ5VT+QOKncqSkx+ibKTIn0Obg7OIzwzl9BL8EO8
5 changed files with 249 additions and 152 deletions

52
main.py
View file

@ -1,46 +1,26 @@
#!./venv/bin/python
import argparse
import typing
#!venv/bin/python
from argparse import ArgumentParser
from pathlib import Path
from typing import cast
import data
import physics
from data import parse_csv, Animator
class Args:
filename: str
file: Path
gravity: float
dimensions: typing.Literal[2, 3]
def main(file: Path, gravity: float) -> None:
pos, vel, rad = parse_csv(file)
Animator(pos, vel, rad, gravity)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
prog="n-body simulation",
description="Simulating gravitational effects"
)
parser = ArgumentParser(description="Gravitation simulation")
parser.add_argument(
"-f",
"--filename",
default="data/2d/simple.csv"
)
parser.add_argument(
"-g",
"--gravity",
type=float,
default=1.
)
parser.add_argument(
"-d",
"--dimensions",
type=int,
choices=[2, 3],
default=2
)
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: Args = parser.parse_args()
physics.G = args.gravity
objects = data.parse_csv(args.filename, dimensions=args.dimensions)
a = data.Animator(*objects)
a.show()
args = cast(Args, parser.parse_args())
main(args.file, args.gravity)