Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- import random
- from matplotlib.animation import FuncAnimation
- fig, ax = plt.subplots()
- #Narysowanie krzywej opierającej się na linii prostej +1pkt
- x=np.linspace(-5,5,100)
- y=x
- #plt.plot(x,y,'-b')
- #plt.show()
- #Wczytanie parametrów krzywej za pomocą lini poleceń +1 pkt
- print("Podaj zmienna c równania cykloidy: ")
- c=input()
- print("Podaj zmienna r równania cykloidy: ")
- r=input()
- #Rysowanie krzywej zadanej przez prowadzącego +2pkt
- r=float(r)
- c=float(c)
- t=np.linspace(0,8*np.pi, 1000)
- x=r*t-c*np.sin(t)
- y=r-c*np.cos(t)
- plt.plot(x,y,'-r')
- #plt.show()
- xdata, ydata = [], []
- ln, = plt.plot([], [], '-r')
- def init():
- ax.set_xlim(-1, r*8*np.pi-c*np.sin(8*np.pi)+1)
- ax.set_ylim(r-c, r-c*np.cos(np.pi))
- return ln,
- def update(frame):
- xdata.append(r*frame-c*np.sin(frame))
- ydata.append(r-c*np.cos(frame))
- ln.set_data(xdata, ydata)
- return ln,
- ani = FuncAnimation(fig, update, frames=np.linspace(0, 8*np.pi, 100),
- init_func=init, blit=True)
- xdata.clear()
- ydata.clear()
- ln, = plt.plot([], [], '-b')
- def update(frame):
- xdata.append(frame)
- ydata.append(r-c*np.cos(frame))
- ln.set_data(xdata, ydata)
- return ln,
- ani = FuncAnimation(fig, update, frames=np.linspace(0, 8*np.pi, 1),init_func=init, blit=True;)
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement