Datoteka:Inclinedthrow.gif

Inclinedthrow.gif(400 × 288 piksela, veličina datoteke: 374 KB, MIME tip: image/gif, animacija se ponavlja, 102 okvira, 10 s)


Logo Wikimedijinog spremnikaOva je datoteka sa Zajedničkog poslužitelja i mogu je rabiti drugi projekti. Opis s njezine stranice s opisom datoteke prikazan je ispod.

Sažetak

Opis
English: Trajectories of three objects thrown at the same angle (70°). The black object doesn't experience any form of drag and moves along a parabola. The blue object experiences Stokes' drag, and the green object Newton drag.
Datum
IzvorVlastito djelo postavljača
AutorAllenMcC.
Ostale inačiceInclinedthrow2.gif
GIF genesis
InfoField
Ova je GIF grafika napravljena programom Matplotlib.
Izvorni kod
InfoField

Python code

#!/usr/bin/python3# -*- coding: utf8 -*-import osimport inspectfrom math import *import numpy as npfrom scipy.integrate import odeintfrom scipy.optimize import newtonimport matplotlib as mplimport matplotlib.pyplot as pltfrom matplotlib import animation# settingsmpl.rcParams['path.snap'] = Falsefname = 'inclinedthrow'size = 400, 288l, w, b, h = 22.5/size[0], 1-23/size[0], 22.5/size[1], 1-23/size[1]nframes = 102delay = 8lw = 1.ms = 6c1, c2, c3 = "#000000", "#0000ff", "#007100"def projectile_motion(g, mu, pot, xy0, vxy0, tt):    # use a four-dimensional vector function vec = [x, y, vx, vy]    def dif(vec, t):        # time derivative of the whole vector vec        v = hypot(vec[2], vec[3])        vxrel, vyrel = vec[2] / v, vec[3] / v        return [vec[2], vec[3], -mu * v**pot * vxrel, -g - mu * v**pot * vyrel]    # solve the differential equation numerically    vec = odeint(dif, [xy0[0], xy0[1], vxy0[0], vxy0[1]], tt)    return vec[:, 0], vec[:, 1], vec[:, 2], vec[:, 3]  # return x, y, vx, vyg = 1.theta  = radians(70)v0 = sqrt(g/sin(2*theta))vinf = 2.1# use identical terminal velocity vinf for both types of frictionmu_stokes = g / vinf**1mu_newton = g / vinf**2x0, y0 = 0.0, 0.0vx0, vy0 = v0 * cos(theta), v0 * sin(theta)T = newton(lambda t: projectile_motion(g, 0, 0, (x0, y0), (vx0, vy0), [0, t])[1][1], 2*vy0/g)nsub = 10tt = np.linspace(0, T * nframes / (nframes - 1), (nframes - 1) * nsub + 1)traj_free = projectile_motion(g, 0, 0, (x0, y0), (vx0, vy0), tt)traj_stokes = projectile_motion(g, mu_stokes, 1, (x0, y0), (vx0, vy0), tt)traj_newton = projectile_motion(g, mu_newton, 2, (x0, y0), (vx0, vy0), tt)def animate(nframe, saveframes=False):    print(nframe, '/', nframes)    t = T * float(nframe) / nframes        plt.clf()    fig.gca().set_position((l, b, w, h))    fig.gca().set_aspect("equal")    plt.xlim(0, 1)    plt.ylim(0, (h*size[1]) / (w*size[0]))    plt.xticks([]), plt.yticks([])    plt.xlabel('Distance', size=12)    plt.ylabel('Height', size=12)        plt.plot(traj_free[0][:nframe*nsub+1], traj_free[1][:nframe*nsub+1],        '-', lw=lw, color=c1)    plt.plot(traj_free[0][nframe*nsub], traj_free[1][nframe*nsub],        'ok', color=c1, markersize=ms, markeredgewidth=0)        plt.plot(traj_stokes[0][:nframe*nsub+1], traj_stokes[1][:nframe*nsub+1],        '-', lw=lw, color=c2)    plt.plot(traj_stokes[0][nframe*nsub], traj_stokes[1][nframe*nsub],        'ok', color=c2, markersize=ms, markeredgewidth=0)        plt.plot(traj_newton[0][:nframe*nsub+1], traj_newton[1][:nframe*nsub+1],        '-', lw=lw, color=c3)    plt.plot(traj_newton[0][nframe*nsub], traj_newton[1][nframe*nsub],        'ok', color=c3, markersize=ms, markeredgewidth=0)        if saveframes:        # export frame        dig = int(ceil(log10(nframes)))        fsavename = ('frame{:0' + str(dig) + '}.svg').format(nframe)        fig.savefig(fsavename)        with open(fsavename) as f: content = f.read()        content = content.replace('pt"', 'px"').replace('pt"', 'px"')        with open(fsavename, 'w') as f: f.write(content)fig = plt.figure(figsize=(size[0]/72., size[1]/72.))os.chdir(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))for i in range(nframes):    animate(i, True)os.system('convert -loop 0 -delay ' + str(delay) + ' frame*.svg +dither ' + fname + '.gif')# keep last frame for two secondsos.system('gifsicle -k32 --color-method blend-diversity -b ' + fname + '.gif -d' + str(delay) + ' "#0-' + str(nframes-2) + '" -d200 "#' + str(nframes-1) + '"')for i in os.listdir('.'):    if i.startswith('frame') and i.endswith('.svg'):        os.remove(i)

Licencija

Ja, nositelj autorskog prava za ovo djelo, ovime ga objavljujem pod sljedećom licencijom:
w:hr:Creative Commons
imenovanje autora dijeli pod istim uvjetima
Slobodno smijete:
  • dijeliti – umnožavati, distribuirati i javnosti priopćavati djelo
  • remiksirati – prerađivati djelo
Pod sljedećim uvjetima:
  • imenovanje autora – Morate pripisati odgovarajuće autorske zasluge, dati poveznicu na licenciju, te naznačiti jesu li načinjene promjene autorskog djela. Prethodno navedeno možete učiniti na svaki razuman način, ali ne na način koji bi sugerirao da Vi ili Vaše korištenje licencorova djela ima izravno licencorovo odobrenje.
  • dijeli pod istim uvjetima – Ako ovo djelo izmijenite, preoblikujete ili stvarate na osnovu tog materijala, svoje doprinose morate distribuirati pod istom ili kompatibilnom licencijom kao što je i licencija originala.

Opisi

Dodajte kratko objašnjenje što predstavlja ova datoteka

Predmeti prikazani u ovoj datoteci

motiv

15. prosinca 2008

Povijest datoteke

Kliknite na datum/vrijeme kako biste vidjeli datoteku kakva je tada bila.

Datum/VrijemeMinijaturaDimenzijeSuradnikKomentar
sadašnja18:10, 21. listopada 2020.Minijatura za inačicu od 18:10, 21. listopada 2020.400 × 288 (374 KB)Geek3adjusted friction coefficients such to make terminal velocity of both trajectories equal. In this case, the Newton projectile moves further.
14:57, 21. listopada 2009.Minijatura za inačicu od 14:57, 21. listopada 2009.400 × 288 (453 KB)AllenMcC.added Newton drag
02:40, 22. prosinca 2008.Minijatura za inačicu od 02:40, 22. prosinca 2008.400 × 299 (393 KB)AllenMcC.== Summary == {{Information |Description={{en|1=Trajectories of two objects thrown at the same angle. The blue object doesn't experience any drag and moves along a parabola. The black object experiences Stokes' drag.}} |Source=Own work by uploader |Author
22:12, 18. prosinca 2008.Minijatura za inačicu od 22:12, 18. prosinca 2008.400 × 299 (393 KB)AllenMcC.== Summary == {{Information |Description={{en|1=Trajectories of two objects thrown at the same angle. The blue object doesn't experience any drag and moves along a parabola. The black object experiences Stokes' drag.}} |Source=Own work by uploader |Author
06:07, 15. prosinca 2008.Minijatura za inačicu od 06:07, 15. prosinca 2008.700 × 519 (636 KB)AllenMcC.{{Information |Description={{en|1=Trajectories of two objects thrown at the same angle. The blue object doesn't experience friction and moves along a parabola. The black object experiences Stokes friction.}} |Source=Own work by uploader |Author=[[User:All

Na ovu sliku vode poveznice sa sljedećih stranica:

Globalna uporaba datoteke

Sljedeći wikiji rabe ovu datoteku:

Pogledajte globalnu uporabu ove datoteke.