চিত্র:Tautochrone curve.gif

পাতাটির বিষয়বস্তু অন্যান্য ভাষায় নেই।
এই ফাইলটি উইকিমিডিয়া কমন্স থেকে নেওয়া। মূল পাতাটি দেখতে ক্লিক করুন।
উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

Tautochrone_curve.gif(৩০০ × ২০০ পিক্সেল, ফাইলের আকার: ১০২ কিলোবাইট, এমআইএমই ধরন: image/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

rewritten by Geek3
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)

লাইসেন্স প্রদান

আমি, এই কাজের স্বত্বাধিকারী, এতদ্দ্বারা আমি এই কাজকে নিম্ন বর্ণিত লাইসেন্সের আওতায় প্রকাশ করলাম:
GNU head এই নথি অনুলিপি, বিতরণ এবং/বা পরিবর্তন করার অনুমতি ফ্রি সফটওয়্যার ফাউন্ডেশন কর্তৃক প্রকাশিত গনু ফ্রি ডকুমেন্টেশন লাইসেন্স, সংস্করণ ১.২ বা তার পরবর্তী সংস্করণের আওতায় অনুমতিপ্রাপ্ত; যে কোনো রকম অনুচ্ছেদ পরিবর্তন, সম্মুখ-প্রচ্ছদের লেখা, পিছন-প্রচ্ছদের লেখা পরিবর্তন করা ছাড়াই। এই লাইসেন্সের একটি অনুলিপি গনু ফ্রি ডকুমেন্টেশন লাইসেন্স শিরোনামের অনুচ্ছেদে অন্তর্ভুক্ত করা আছে।
w:bn:ক্রিয়েটিভ কমন্স
স্বীকৃতিপ্রদান একইভাবে বণ্টন
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন-শেয়ার অ্যালাইক ৩.০ আনপোর্টেড লাইসেন্সের আওতায় লাইসেন্সকৃত।
আপনি স্বাধীনভাবে:
  • বণ্টন করতে পারেন – এ কাজটি অনুলিপি, বিতরণ এবং প্রেরণ করতে পারেন
  • পুনঃমিশ্রণ করতে পারেন – কাজটি অভিযোজন করতে পারেন
নিম্নের শর্তাবলীর ভিত্তিতে:
  • স্বীকৃতিপ্রদান – আপনাকে অবশ্যই যথাযথ স্বীকৃতি প্রদান করতে হবে, লাইসেন্সের একটি লিঙ্ক সরবরাহ করতে হবে এবং কোনো পরিবর্তন হয়েছে কিনা তা নির্দেশ করতে হবে। আপনি যেকোনো যুক্তিসঙ্গত পদ্ধতিতে এটি করতে পারেন। কিন্তু এমন ভাবে নয়, যাতে প্রকাশ পায় যে লাইসেন্সধারী আপনাকে বা আপনার এই ব্যবহারের জন্য অনুমোদন দিয়েছে।
  • একইভাবে বণ্টন – আপনি যদি কাজটি পুনঃমিশ্রণ, রুপান্তর, বা এর ওপর ভিত্তি করে নতুন সৃষ্টিকর্ম তৈরি করেন, তবে আপনাকে অবশ্যই আপনার অবদান একই লাইসেন্স বা একই রকমের লাইসেন্সের আওতায় বিতরণ করতে হবে।
এই লাইসেন্স ট্যাগটি জিএফডিএল লাইসেন্স হালনাগাদের অংশ হিসেবে এই ফাইলে সংযুক্ত হয়েছে।
w:bn:ক্রিয়েটিভ কমন্স
স্বীকৃতিপ্রদান
এই ফাইলটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.৫ জেনেরিক লাইসেন্সের আওতায় লাইসেন্সকৃত।
আপনি স্বাধীনভাবে:
  • বণ্টন করতে পারেন – এ কাজটি অনুলিপি, বিতরণ এবং প্রেরণ করতে পারেন
  • পুনঃমিশ্রণ করতে পারেন – কাজটি অভিযোজন করতে পারেন
নিম্নের শর্তাবলীর ভিত্তিতে:
  • স্বীকৃতিপ্রদান – আপনাকে অবশ্যই যথাযথ স্বীকৃতি প্রদান করতে হবে, লাইসেন্সের একটি লিঙ্ক সরবরাহ করতে হবে এবং কোনো পরিবর্তন হয়েছে কিনা তা নির্দেশ করতে হবে। আপনি যেকোনো যুক্তিসঙ্গত পদ্ধতিতে এটি করতে পারেন। কিন্তু এমন ভাবে নয়, যাতে প্রকাশ পায় যে লাইসেন্সধারী আপনাকে বা আপনার এই ব্যবহারের জন্য অনুমোদন দিয়েছে।
আপনি আপনার পছন্দসই লাইসেন্স নির্বাচন করতে পারেন।

ক্যাপশন

এই ফাইল কি প্রতিনিধিত্ব করছে তার এক লাইন ব্যাখ্যা যোগ করুন

এই ফাইলে চিত্রিত আইটেমগুলি

যা চিত্রিত করে

ফাইলের ইতিহাস

যেকোনো তারিখ/সময়ে ক্লিক করে দেখুন ফাইলটি তখন কী অবস্থায় ছিল।

তারিখ/সময়সংক্ষেপচিত্রমাত্রাব্যবহারকারীমন্তব্য
বর্তমান১৩:১৫, ১ আগস্ট ২০০৯১৩:১৫, ১ আগস্ট ২০০৯-এর সংস্করণের সংক্ষেপচিত্র৩০০ × ২০০ (১০২ কিলোবাইট)Geek3new 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 }}

নিচের পৃষ্ঠা(গুলো) থেকে এই ছবিতে সংযোগ আছে:

ফাইলের বৈশ্বিক ব্যবহার

নিচের অন্যান্য উইকিগুলো এই ফাইলটি ব্যবহার করে: