Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import random
  4. from matplotlib.animation import FuncAnimation
  5.  
  6. fig, ax = plt.subplots()
  7. #Narysowanie krzywej opierającej się na linii prostej +1pkt
  8. x=np.linspace(-5,5,100)
  9. y=x
  10. #plt.plot(x,y,'-b')
  11. #plt.show()
  12.  
  13.  
  14. #Wczytanie parametrów krzywej za pomocą lini poleceń +1 pkt
  15. print("Podaj zmienna c równania cykloidy: ")
  16. c=input()
  17. print("Podaj zmienna r równania cykloidy: ")
  18. r=input()
  19.  
  20.  
  21. #Rysowanie krzywej zadanej przez prowadzącego +2pkt
  22. r=float(r)
  23. c=float(c)
  24. t=np.linspace(0,8*np.pi, 1000)
  25. x=r*t-c*np.sin(t)
  26. y=r-c*np.cos(t)
  27.  
  28. plt.plot(x,y,'-r')
  29. #plt.show()
  30.  
  31.  
  32.  
  33.  
  34. xdata, ydata = [], []
  35. ln, = plt.plot([], [], '-r')
  36.  
  37. def init():
  38. ax.set_xlim(-1, r*8*np.pi-c*np.sin(8*np.pi)+1)
  39. ax.set_ylim(r-c, r-c*np.cos(np.pi))
  40. return ln,
  41.  
  42. def update(frame):
  43. xdata.append(r*frame-c*np.sin(frame))
  44. ydata.append(r-c*np.cos(frame))
  45. ln.set_data(xdata, ydata)
  46. return ln,
  47.  
  48. ani = FuncAnimation(fig, update, frames=np.linspace(0, 8*np.pi, 100),
  49. init_func=init, blit=True)
  50.  
  51.  
  52.  
  53. xdata.clear()
  54. ydata.clear()
  55. ln, = plt.plot([], [], '-b')
  56.  
  57. def update(frame):
  58. xdata.append(frame)
  59. ydata.append(r-c*np.cos(frame))
  60. ln.set_data(xdata, ydata)
  61. return ln,
  62.  
  63. ani = FuncAnimation(fig, update, frames=np.linspace(0, 8*np.pi, 1),init_func=init, blit=True;)
  64.  
  65.  
  66. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement