Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
52866 views
Kernel: Anaconda (Python 3)

Animacija u IPython notebooku

Napravit ćemo animaciju koristeći biblioteku JSAnimation.

Upute: Na meniju kliknite na New, iskopirajte sljedeći link https://github.com/jakevdp/JSAnimation i pritsnite enter. Dalje pratite upute dane ovdje.

Ili, alternativno, samo iskopirajte projekt za ova predavanja.

from pylab import * %matplotlib inline from JSAnimation.IPython_display import display_animation from matplotlib import animation
from scipy.integrate import odeint g = 9.82; L = 0.5; m = 0.1 def dx(x, t): x1, x2, x3, x4 = x[0], x[1], x[2], x[3] dx1 = 6.0/(m*L**2) * (2 * x3 - 3 * cos(x1-x2) * x4)/(16 - 9 * cos(x1-x2)**2) dx2 = 6.0/(m*L**2) * (8 * x4 - 3 * cos(x1-x2) * x3)/(16 - 9 * cos(x1-x2)**2) dx3 = -0.5 * m * L**2 * ( dx1 * dx2 * sin(x1-x2) + 3 * (g/L) * sin(x1)) dx4 = -0.5 * m * L**2 * (-dx1 * dx2 * sin(x1-x2) + (g/L) * sin(x2)) return [dx1, dx2, dx3, dx4] x0 = [pi/2, pi/2, 0, 0] # početno stanje dt = 0.05 t = np.arange(0.0, 20, dt) # vremena x = odeint(dx, x0, t) # rješenje ODJ # razdvojimo koordinate x1 = L * sin(x[:,0]) y1 = -L * cos(x[:,0]) x2 = x1 + L * sin(x[:,1]) y2 = y1 - L * cos(x[:,1])
fig = plt.figure() ax = fig.add_subplot(111, autoscale_on=False, xlim=(-2, 2), ylim=(-2, 2)) ax.grid() #line, = ax.plot([], [], 'o-', lw=2) pendulum1, = ax.plot([], [], 'o-', color="red", lw=2) pendulum2, = ax.plot([], [], 'o-', color="blue", lw=2) time_template = 'vrijeme = %.1fs' time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes) def init(): pendulum1.set_data([], []) pendulum2.set_data([], []) time_text.set_text('') return pendulum1, pendulum2, time_text def animate(i): pendulum1.set_data([0,x1[i]], [0,y1[i]]) pendulum2.set_data([x1[i],x2[i]],[y1[i],y2[i]]) time_text.set_text(time_template % (i*dt)) return pendulum1, pendulum2, time_text ani = animation.FuncAnimation(fig, animate, np.arange(1, len(x)), interval=25, blit=True, init_func=init) display_animation(ani, default_mode='once')
ani.save('njihalo.gif', writer='imagemagick',fps=4)
from IPython.display import Image Image(url='njihalo.gif')

Još jedan primjer animacije možete pogledati ovdje.