In [1]:
import numpy as np
import matplotlib.pyplot as plt
#from visual import*

M=5.97*pow(10,24)
R=6400000.0

def gravity(M,R):
    G=6.67*pow(10.0,-11.0)
    return (G*M/R**2)

def narisi_graf():
    data=np.loadtxt("rezultati_simulacije.dat")
    fig = plt.figure(figsize=(24.0,6.5)) 
    ax1 = fig.add_subplot(131)
    ax1.plot(data[:,1],data[:,2],color='red',linewidth=2.5)
    ax1.grid(True)
    ax1.set_xlim([min(data[:,1])-0.1,max(data[:,1]+0.1)])
    ax1.set_ylim([min(data[:,2])-0.1,max(data[:,2]+0.1)])
    ax1.set_ylabel('$y$ [m]')
    ax1.set_xlabel('$x$ [m]')
    
    ax2 = fig.add_subplot(132)
    ax2.plot(data[:,0],data[:,3],color='blue',linewidth=2.5)
    ax2.grid(True)
    ax2.set_xlim([min(data[:,0])-0.1,max(data[:,0]+0.1)])
    ax2.set_ylim([min(data[:,3])-0.1,max(data[:,3]+0.1)])
    ax2.set_xlabel('$t$ [s]')
    ax2.set_ylabel('$v [\\frac{m}{s}]$')

    ax3 = fig.add_subplot(133)
    ax3.plot(data[:,0],data[:,4],color='olive',linewidth=2.5)
    ax3.grid(True)
    ax3.set_xlim([min(data[:,0])-0.1,max(data[:,0]+0.1)])
    ax3.set_ylim([min(data[:,4])-0.1,max(data[:,4]+0.1)])
    ax3.set_ylabel('$a [\\frac{m}{s^2}]$')
    ax3.set_xlabel('$t$ [s]')
    plt.savefig("posevni_med.png",bbox_inches='tight',dpi=80)
    plt.show()
    fig.clear()

dt=0.001
pi=np.pi
fi=(pi/180.0)*float(input("Vnesite kot:"))
v0=15.0
g=gravity(M,R)

# PREDVIDENA NAJVECJA VISINA, DOMET IN CAS TRAJANJA SIMULACIJE
t_fin=2.0*v0*np.sin(fi)/g
D=v0*np.cos(fi)*t_fin
h_max=v0*np.sin(fi)*t_fin*0.5-0.5*g*(t_fin*0.5)**2
print ("cas leta = %.2f s\t"%(t_fin),"domet je %.2f m\t"%(D),"najvisja tocka leta = %.2f m"%(h_max))
t=0.0
pos=np.array([0.0,0.0,0.0])
v=np.array([v0*np.cos(fi),v0*np.sin(fi),0.0])
a=np.array([0.0,-g,0.0])

data=open("rezultati_simulacije.dat","w+")

while t<(t_fin+dt):
    pos+=v*dt
    v+=a*dt
    t+=dt
    data.write("%f\t%f\t%f\t%f\t%f\n"%(t,pos[0],pos[1],np.sqrt(v.dot(v)),np.sqrt(a.dot(a))))
    
print("SIMULACIJA JE KONCANA")
data.close()
narisi_graf()
Vnesite kot:30
cas leta = 1.54 s	 domet je 20.04 m	 najvisja tocka leta = 2.89 m
SIMULACIJA JE KONCANA
In [ ]: