-
Notifications
You must be signed in to change notification settings - Fork 0
/
command_line.py
33 lines (31 loc) · 1.97 KB
/
command_line.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from services.simulator import Simulator
from services.plotter import Plotter
print("Hello and welcome to this tiny simulator")
print("-----------------------------------------------")
print("Ok you are big now and it's time to \ndon't ignoring air resistance in projectile motion")
print("-----------------------------------------------")
print("below enter your problem parameter, i will \ndraw graphs of motion in 'output' directory =)")
print("-----------------------------------------------")
print("first thing first, enter initial velocity:(m/s)")
initial_velocity = float(input())
print("-----------------------------------------------")
print("now enter the angel of projectile:(rad)")
angel = float(input())
print("-----------------------------------------------")
print("it's time for air to play its role, enter radius of ball:(m)")
radius = float(input())
print("-----------------------------------------------")
print("ohh we forget about mass :), enter the mass of projectile:(kg)")
mass = float(input())
print("-----------------------------------------------")
print("at the end enter time duration:(s) *[the less time duration is the accurate your graphs will be]*")
delta_t = float(input())
simulator = Simulator(mass, initial_velocity, angel, radius, delta_t)
simulator.simulate()
Plotter.plot(simulator.y_components, simulator.x_components, r'$y\/(m)$', r'$x\/(m)$', "[y-x]graph")
Plotter.plot(simulator.x_components, simulator.time, r'$x\/(m)$', r'$t\/(s)$', "[x-t]graph")
Plotter.plot(simulator.y_components, simulator.time, r'$y\/(m)$', r'$t\/(s)$', "[y-t]graph")
Plotter.plot(simulator.v_x_components, simulator.time, r'$\.x\/(m/s)$', r'$t\/(s)$', "[xdot-t]graph")
Plotter.plot(simulator.v_y_components, simulator.time, r'$\.y\/(m/s)$', r'$t\/(s)$', "[ydot-t]graph")
Plotter.plot(simulator.v_x_components, simulator.x_components, r'$\.x\/(m/s)$', r'$x\/(m)$', "[xdot-x]graph")
Plotter.plot(simulator.v_y_components, simulator.y_components, r'$\.y\/(m/s)$', r'$y\/(m)$', "[ydot-y]graph")