File:Tautochrone curve.gif
Wikimedia Commons থেকে
পরিভ্রমণে চলুন
অনুসন্ধানে চলুন
Tautochrone_curve.gif (৩০০ × ২০০ পিক্সেল, ফাইলের আকার: ১০২ কিলোবাইট, এমআইএমই ধরন: image/gif, লুপকৃত, ৮০ ফ্রেম, ৩.২ সে)
ফাইলের তথ্য
কাঠামোবদ্ধ উপাত্ত
ক্যাপশনসমূহ
ক্যাপশন
এই ফাইল কি প্রতিনিধিত্ব করছে তার এক লাইন ব্যাখ্যা যোগ করুন
সারাংশ
[সম্পাদনা]বিবরণTautochrone curve.gif |
A tautochrone curve is the curve for which the time taken by an object sliding without friction in uniform gravity to its lowest point is independent of its starting point. Here, four points at different positions reach the bottom at the same time. In the graphic, s represents arc length, t represents time, and the blue arrows represent acceleration along the trajectory. As the points reach the horizontal, the velocity becomes constant, the arc length being linear to time. |
তারিখ | ৯ মে ২০০৭; new version আগস্ট ২০০৯ |
উৎস | নিজের কাজ |
লেখক |
Claudio Rocchini |
GIF genesis InfoField | ![]() এই GIF গ্রাফিক্সটি Matplotlib দিয়ে তৈরি করা হয়েছে। |
উৎস কোড InfoField | Python code#!/usr/bin/python
# -*- coding: utf8 -*-
'''
animation of balls on a tautochrone curve
'''
import os
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from matplotlib import animation
from math import *
# settings
fname = 'Tautochrone curve'
width, height = 300, 200
nframes = 80
fps=25
balls = [
{'a':1.0, 'color':'#0000c0'},
{'a':0.8, 'color':'#c00000'},
{'a':0.6, 'color':'#00c000'},
{'a':0.4, 'color':'#c0c000'}]
def curve(phi):
x = phi + sin(phi)
y = 1.0 - cos(phi)
return np.array([x, y])
def animate(nframe, empty=False):
t = nframe / float(nframes - 1.)
# prepare a clean and image-filling canvas for each frame
fig = plt.gcf()
fig.clf()
ax_canvas = plt.gca()
ax_canvas.set_position((0, 0, 1, 1))
ax_canvas.set_xlim(0, width)
ax_canvas.set_ylim(0, height)
ax_canvas.axis('off')
# draw the ramp
x0, y0 = 293, 8
h = 182
npoints = 200
points = []
for i in range(npoints):
phi = i / (npoints - 1.0) * pi - pi
x, y = h/2. * curve(phi) + np.array([x0, y0])
points.append([x, y])
rampline = patches.Polygon(points, closed=False, facecolor='none',
edgecolor='black', linewidth=1.5, capstyle='butt')
points += [[x0-h*pi/2, y0], [x0-h*pi/2, y0+h]]
ramp = patches.Polygon(points, closed=True, facecolor='#c0c0c0', edgecolor='none')
# plot axes
plotw = 0.5
ax_plot = fig.add_axes((0.47, 0.46, plotw, plotw*2/pi*width/height))
ax_plot.set_xlim(0, 1)
ax_plot.set_ylim(0, 1)
for b in balls:
time_array = np.linspace(0, 1, 201)
phi_pendulum_array = (1 - b['a'] * np.cos(time_array*pi/2))
ax_plot.plot(time_array, phi_pendulum_array, '-', color=b['color'], lw=.8)
ax_plot.set_xticks([])
ax_plot.set_yticks([])
ax_plot.set_xlabel('t')
ax_plot.set_ylabel('s')
ax_canvas.add_patch(ramp)
ax_canvas.add_patch(rampline)
for b in balls:
# draw the balls
phi_pendulum = b['a'] * -cos(t * pi/2)
phi_wheel = 2 * asin(phi_pendulum)
phi_wheel = -abs(phi_wheel)
x, y = h/2. * curve(phi_wheel) + np.array([x0, y0])
ax_canvas.add_patch(patches.Circle((x, y), radius=6., zorder=3,
facecolor=b['color'], edgecolor='black'))
ax_plot.plot([t], [1 + phi_pendulum], '.', ms=6., mec='none', mfc='black')
v = h/2. * np.array([1 + cos(phi_wheel), sin(phi_wheel)])
vnorm = v / hypot(v[0], v[1])
# in the harmonic motion, acceleration is proportional to -position
acc_along_line = 38. * -phi_pendulum * vnorm
ax_canvas.arrow(x, y, acc_along_line[0], acc_along_line[1],
head_width=6, head_length=6, fc='#1b00ff', ec='#1b00ff')
fig = plt.figure(figsize=(width/100., height/100.))
print 'saving', fname + '.gif'
#anim = animation.FuncAnimation(fig, animate, frames=nframes)
#anim.save(fname + '.gif', writer='imagemagick', fps=fps)
frames = []
for nframe in range(nframes):
frame = fname + '_{:02}.png'.format(nframe)
animation.FuncAnimation(fig, lambda n: animate(nframe), frames=1).save(
frame, writer='imagemagick')
frames.append(frame)
# assemble animation using imagemagick, this avoids dithering and huge filesize
os.system('convert -delay {} +dither +remap -layers Optimize {} "{}"'.format(
100//fps, ' '.join(['"' + f + '"' for f in frames]), fname + '.gif'))
for frame in frames:
if os.path.exists(frame):
os.remove(frame)
|
লাইসেন্স প্রদান
[সম্পাদনা]আমি, এই কাজের স্বত্বাধিকারী, এতদ্দ্বারা আমি এই কাজকে নিম্ন বর্ণিত লাইসেন্সের আওতায় প্রকাশ করলাম:
![]() |
এই নথি অনুলিপি, বিতরণ এবং/বা পরিবর্তন করার অনুমতি ফ্রি সফটওয়্যার ফাউন্ডেশন কর্তৃক প্রকাশিত গনু ফ্রি ডকুমেন্টেশন লাইসেন্স, সংস্করণ ১.২ বা তার পরবর্তী সংস্করণের আওতায় অনুমতিপ্রাপ্ত; যে কোনো রকম অনুচ্ছেদ পরিবর্তন, সম্মুখ-প্রচ্ছদের লেখা, পিছন-প্রচ্ছদের লেখা পরিবর্তন করা ছাড়াই। এই লাইসেন্সের একটি অনুলিপি গনু ফ্রি ডকুমেন্টেশন লাইসেন্স শিরোনামের অনুচ্ছেদে অন্তর্ভুক্ত করা আছে।http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
![]() ![]() ![]() |
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-শেয়ার অ্যালাইক ৩.০ আনপোর্টেড লাইসেন্সের আওতায় লাইসেন্সকৃত। | |
| ||
এই লাইসেন্স ট্যাগটি জিএফডিএল লাইসেন্স হালনাগাদের অংশ হিসেবে এই ফাইলে সংযুক্ত হয়েছে।http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
![w:bn:ক্রিয়েটিভ কমন্স](https://upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![স্বীকৃতিপ্রদান](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.৫ জেনেরিক লাইসেন্সের আওতায় লাইসেন্সকৃত।
- আপনি স্বাধীনভাবে:
- বণ্টন করতে পারেন – এ কাজটি অনুলিপি, বিতরণ এবং প্রেরণ করতে পারেন
- পুনঃমিশ্রণ করতে পারেন – কাজটি অভিযোজন করতে পারেন
- নিম্নের শর্তাবলীর ভিত্তিতে:
- স্বীকৃতিপ্রদান – আপনাকে অবশ্যই যথাযথ স্বীকৃতি প্রদান করতে হবে, লাইসেন্সের একটি লিঙ্ক সরবরাহ করতে হবে এবং কোনো পরিবর্তন হয়েছে কিনা তা নির্দেশ করতে হবে। আপনি যেকোনো যুক্তিসঙ্গত পদ্ধতিতে এটি করতে পারেন। কিন্তু এমন ভাবে নয়, যাতে প্রকাশ পায় যে লাইসেন্সধারী আপনাকে বা আপনার এই ব্যবহারের জন্য অনুমোদন দিয়েছে।
আপনি আপনার পছন্দসই লাইসেন্স নির্বাচন করতে পারেন।
ফাইলের ইতিহাস
যেকোনো তারিখ/সময়ে ক্লিক করে দেখুন ফাইলটি তখন কী অবস্থায় ছিল।
তারিখ/সময় | সংক্ষেপচিত্র | মাত্রা | ব্যবহারকারী | মন্তব্য | |
---|---|---|---|---|---|
বর্তমান | ১৩:১৫, ১ আগস্ট ২০০৯ | ![]() | ৩০০ × ২০০ (১০২ কিলোবাইট) | Geek3 (আলোচনা | অবদান) | new physically correct version |
০৬:৫৬, ৯ মে ২০০৭ | ![]() | ৩০০ × ২০০ (৬০২ কিলোবাইট) | Rocchini (আলোচনা | অবদান) | {{Information |Description=Tautochrone curve animation (4 points runs over a cycloid) |Source=Own work |Date=2007-05-09 |Author=Claudio Rocchini |Permission=CC-BY 2.5 }} |
আপনি এই ফাইলটি প্রতিস্থাপন করতে পারবেন না।
ফাইলের ব্যবহার
নিম্নলিখিত 5টি পাতা এই ফাইল ব্যবহার করে:
ফাইলের বৈশ্বিক ব্যবহার
নিচের অন্যান্য উইকিগুলো এই ফাইলটি ব্যবহার করে:
- ar.wikipedia.org-এ ব্যবহার
- bn.wikipedia.org-এ ব্যবহার
- ca.wikipedia.org-এ ব্যবহার
- da.wikipedia.org-এ ব্যবহার
- de.wikipedia.org-এ ব্যবহার
- de.wikiversity.org-এ ব্যবহার
- en.wikipedia.org-এ ব্যবহার
- es.wikipedia.org-এ ব্যবহার
- fa.wikipedia.org-এ ব্যবহার
- fr.wikipedia.org-এ ব্যবহার
- fr.wikibooks.org-এ ব্যবহার
- fr.wiktionary.org-এ ব্যবহার
- he.wikipedia.org-এ ব্যবহার
- hr.wikipedia.org-এ ব্যবহার
- id.wikipedia.org-এ ব্যবহার
- it.wikipedia.org-এ ব্যবহার
- ja.wikipedia.org-এ ব্যবহার
- kk.wikipedia.org-এ ব্যবহার
- ko.wikipedia.org-এ ব্যবহার
- lt.wikipedia.org-এ ব্যবহার
- lv.wikipedia.org-এ ব্যবহার
- nl.wikipedia.org-এ ব্যবহার
- nn.wikipedia.org-এ ব্যবহার
- no.wikipedia.org-এ ব্যবহার
- pl.wikipedia.org-এ ব্যবহার
- pt.wikipedia.org-এ ব্যবহার
- ro.wikipedia.org-এ ব্যবহার
- ru.wikipedia.org-এ ব্যবহার
- sl.wikipedia.org-এ ব্যবহার
- tr.wikipedia.org-এ ব্যবহার
- www.wikidata.org-এ ব্যবহার
- zh.wikipedia.org-এ ব্যবহার