Advertisement
stypa1110

Rzut ukośny v1.0

Oct 8th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.19 KB | None | 0 0
  1. #-*- coding: utf-8 -*-
  2. '''
  3. Created on 08-10-2014
  4.  
  5. @author: Michał Stypczyński
  6. '''
  7.  
  8. import pylab
  9. import math
  10.  
  11. kat=int(raw_input("Podaj kąt rzutu (w stopniach): "))             #Zaczytuje z klawiatury kąt rzutu (raw_input zwraca string)
  12. predkosc=float(raw_input("Podaj predkość początkową (w m/s): "))  #Zaczytuje z klawiatury prędkość początkową
  13.  
  14. alfa=math.radians(kat)   #Funkcja radians zamienia wartość kąta z stopni na radiany
  15. V0=predkosc              #Prędkość początkową w [m/s]
  16. Vy=V0*math.sin(alfa)     #Wylicza prędkość początkową względem osi y
  17. Vx=V0*math.cos(alfa)     #Wylicza prędkość początkową względem osi x
  18. g=9.81                   #Przyspieszenie ziemskie w [m/s^2]
  19. t=0.0                    #Ustawiamy czas na 0.0 [s]
  20.  
  21. s=[]                     #Tworzenie pustej listy gdzie będziemy przechowywać odleglości[m]
  22. h=[]                     #Tworzenie pustej listy gdzie będziemy przechowywać wysokości [m]
  23.  
  24. def wysokosc(t):        #Funkcja wylicza wysokość dla danej wartosci czasu
  25.     return (Vy*t)-((g*t*t)/2)
  26. def odleglosc(t):       #Funkcja wylicza odleglość dla danej wartosci czasu
  27.     return Vx*t
  28.  
  29. while wysokosc(t) >= 0: #Petla licząca wysokość i odległość obiektu co 0.01[s]
  30.     h.append(wysokosc(t))
  31.     s.append(odleglosc(t))
  32.     t += 0.01
  33.  
  34. pylab.plot(s,h)                     #Tworzy wykres dla podanych wartosci plot(x,y)
  35. pylab.xlim(0,(s[-1]+1))             #Ustawia w jakim zakresie ma być pokazywany wykres na osi x
  36. pylab.ylim(0,(max(h)+1))            #Ustawia w jakim zakresie ma być pokazywany wykres na osi y
  37. pylab.xlabel(u'Odległość [m]')      #ustawia etykiete dla osi x
  38. pylab.ylabel(u'wysokość [m]')       #Ustawia etykiete dla osi y
  39. pylab.title(u'Rzut ukośny')         #Ustawia tytuł wykresu
  40. pylab.grid(True)                    #Pokazuje dodatkowe linie poziomie i pionowe na wykresie
  41. pylab.show()                        #Pokazuje wykres
  42. print 'Czas', t , '[s]'             #Wypisuje w konsoli czas lotu obiektu
  43. print 'Wysokość', max(h), '[m]'     #Wypisuje w konsoli maksymalna wysokość jaką uzyskał obiekt
  44. print 'Odległość', s[-1], '[m]'     #Wypisuje w konsoli odległość na jaką obiekt doleciał
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement