Íomhá:Inclinedthrow.gif
From Wikipedia, the free encyclopedia
Inclinedthrow.gif (400 × 288 picteilín, méid comhaid: 374 KB, cineál MIME: image/gif, looped, 102 frames, 10 s)
![]() |
Seo comhad as An Cómhaoin Viciméid. Tá an tuairisc as an leathanach tuairisc Cómhaoin a leanas thíos.
|
Achoimriú
TuairiscInclinedthrow.gif |
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. |
Dáta | |
Foinse | Obair féin |
Údar | AllenMcC. |
Leaganacha eile | Inclinedthrow2.gif |
GIF genesis InfoField | ![]() This plot was created with Matplotlib. |
Cód foinseach InfoField | Python code#!/usr/bin/python3
# -*- coding: utf8 -*-
import os
import inspect
from math import *
import numpy as np
from scipy.integrate import odeint
from scipy.optimize import newton
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import animation
# settings
mpl.rcParams['path.snap'] = False
fname = 'inclinedthrow'
size = 400, 288
l, w, b, h = 22.5/size[0], 1-23/size[0], 22.5/size[1], 1-23/size[1]
nframes = 102
delay = 8
lw = 1.
ms = 6
c1, 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, vy
g = 1.
theta = radians(70)
v0 = sqrt(g/sin(2*theta))
vinf = 2.1
# use identical terminal velocity vinf for both types of friction
mu_stokes = g / vinf**1
mu_newton = g / vinf**2
x0, y0 = 0.0, 0.0
vx0, 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 = 10
tt = 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 seconds
os.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)
|
Ceadúnú
Is mise sealbhóir cóipchirt an shaothair seo agus foilsím é faoin gceadúnas seo a leanas:
![w:ga:Creative Commons](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![sannadh](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![comhroinn araon](https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.
- Is féidir:
- an saothar seo a roinnt – an saothar seo a chóipeáil, a dháil amach, agus a tharchur
- an saothar seo a athmheascadh – an saothar seo a oiriúnú
- Ach amháin má leantar na coinníollacha seo a leanas:
- sannadh – Ní mor creidiúint a thabhairt leis an saothar, faoi mar a shonraigh an údar nó tabharthóir an ceadúnais (ach ná húsáid modh a thugann le fios go thacaíonn sé/sí tú féin nó an úsáid a bhaineann tú as an saothar).
- comhroinn araon – Má athraíonn tú nó síneann tú amach an saothar seo, ní féidir é a dháileadh ach amhaín faoin gceadúnas céanna nó ceann cosúil leis an gceann seo.
Captions
Add a one-line explanation of what this file represents
Items portrayed in this file
taispeánann sé/sí
some value
15 Nollaig 2008
source of file Béarla
Stair chomhaid
Cliceáil ar dáta/am chun an comhad a radharc mar a bhí sé ag an am sin.
Dáta/Am | Mionsamhail | Toisí | Úsáideoir | Nóta tráchta | |
---|---|---|---|---|---|
faoi láthair | 16:10, 21 Deireadh Fómhair 2020 | ![]() | 400 × 288 (374 KB) | Geek3 | adjusted friction coefficients such to make terminal velocity of both trajectories equal. In this case, the Newton projectile moves further. |
12:57, 21 Deireadh Fómhair 2009 | ![]() | 400 × 288 (453 KB) | AllenMcC. | added Newton drag | |
00:40, 22 Nollaig 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 | |
20:12, 18 Nollaig 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 | |
04:07, 15 Nollaig 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 |
Úsáid comhaid
Tá nasc chuig an gcomhad seo ar na leathanaigh seo a leanas:
Global file usage
The following other wikis use this file:
- Úsáid ar af.wikipedia.org
- Úsáid ar ar.wikipedia.org
- Úsáid ar be.wikipedia.org
- Úsáid ar bg.wikipedia.org
- Úsáid ar bn.wikipedia.org
- Úsáid ar bs.wikipedia.org
- Úsáid ar ca.wikipedia.org
- Úsáid ar cv.wikipedia.org
- Úsáid ar da.wikipedia.org
- Úsáid ar de.wikipedia.org
- Úsáid ar el.wikipedia.org
- Úsáid ar en.wikipedia.org
- Wave–particle duality
- Trajectory
- Ballistics
- Drag (physics)
- Talk:Field line
- Wikipedia talk:Requests for arbitration/Tang Dynasty
- Wikipedia:Requests for arbitration/Tang Dynasty/Workshop
- User:Enkyo2/Sandbox-L
- Talk:Senkaku Islands/Archive 5
- Bouncing ball
- Wikipedia:Arbitration/Requests/Clarification and Amendment/Archive 34
- User:Eelaraa/Drag (physics)
- Úsáid ar eo.wikipedia.org
- Úsáid ar es.wikipedia.org
- Úsáid ar eu.wikipedia.org
- Úsáid ar fa.wikipedia.org
- Úsáid ar fi.wikipedia.org
- Úsáid ar he.wikipedia.org
- Úsáid ar hi.wikipedia.org
- Úsáid ar hr.wikipedia.org
- Úsáid ar ht.wikipedia.org
- Úsáid ar hu.wikipedia.org
- Úsáid ar hy.wikipedia.org
View more global usage of this file.