فائل:Simple harmonic oscillator.gif

صفحے کے مندرجات دوسری زبانوں میں قابل قبول نہیں ہیں۔
آزاد دائرۃ المعارف، ویکیپیڈیا سے

Simple_harmonic_oscillator.gif(116 × 359 پکسل، فائل کا حجم: 52 کلوبائٹ، MIME قسم: image/gif، چکردار، 15 چوکھٹے، 1.1 سیکنڈ)

یہ فائل ویکی ذخائر کی ہے اور دیگر منصوبوں کے زیر استعمال ہوسکتی ہے۔ فائل کے صفحہ تعارف پر موجود تعارف ذیل میں موجود ہے۔

تفصیل Illustration of a en:Simple harmonic oscillator
تاریخ
ماخذ self-made with en:Matlab. Converted to gif animation with the en:ImageMagick convert tool (see the specific command later in the code).
مصنف Oleg Alexandrov
دوسرے نسخے Damped spring.gif Damped version
GIF genesis
InfoField
 
This diagram was created with MATLAB.
سورس کوڈ
InfoField

MATLAB code

function main()

% colors
   red      = [0.867    0.06    0.14];
   blue     = [0        129     205]/256;
   green    = [0        200     70]/256;
   black    = [0        0       0];
   white    = [1        1       1]*0.99;
   cardinal = [196      30      58]/256;
   cerulean = [0        123     167]/256;
   denim    = [21       96      189]/256;
   cobalt   = [0        71      171]/256;
   pblue    = [0        49      83]/256;
   teracotta= [226      114     91]/256;
   tene     = [205      87      0]/256;
   wall_color   = pblue;
   spring_color = cobalt;
   mass_color   = tene;
   a=0.65; bmass_color   = a*mass_color+(1-a)*black;
   % linewidth and fontsize
   lw=2;
   fs=20;

   ww = 0.5;  % wall width
   ms = 0.25; % the size of the mass        
   sw=0.1;    % spring width
   curls = 8;

   A = 0.2; % the amplitude of spring oscillations
   B = -1; % the y coordinate of the base state (the origin is higher, at the wall)

   %  Each of the small lines has length l
   l = 0.05;

   N = 15;  % times per oscillation 
   No = 1; % number of oscillations
   for i = 1:N*No

      % set up the plotting window
      figure(1); clf; hold on; axis equal; axis off;

   
      t = 2*pi*(i-1)/(N-0)+pi/2; % current time
      H= A*sin(t) +  B;      % position of the mass

      % plot the spring from Start to End
      Start = [0, 0]; End = [0, H];
      [X, Y]=do_plot_spring(Start, End, curls, sw);
      plot(X, Y, 'linewidth', lw, 'color', spring_color); 

      % Here we cheat. We modify the point B so that the mass is attached exactly at the end of the
      % spring. This should not be necessary. I am too lazy to to the exact calculation.
      K = length(X); End(1) = X(K); End(2) = Y(K);
            
      % plot the wall from which the spring is hanging
      plot_wall(-ww/2, ww/2, l, lw, wall_color);

      % plot the mass at the end of the spring
      X=[-ms/2 ms/2 ms/2 -ms/2 -ms/2 ms/2]+End(1); Y=[0 0 -ms -ms 0 0]+End(2);
      H=fill(X, Y, mass_color, 'EdgeColor', bmass_color, 'linewidth', lw);

          
          % the bounding box
          Sx = -0.4*ww;  Sy = B-A-ms+0.05;
          Lx = 0.4*ww+l; Ly=l;
          axis([Sx, Lx, Sy, Ly]);
          plot(Sx, Sy, '*', 'color', white); % a hack to avoid a saveas to eps bug
          
      saveas(gcf, sprintf('Spring_frame%d.eps', 1000+i), 'psc2') %save the current frame
      disp(sprintf('Spring_frame%d', 1000+i)); %show the frame number we are at
      
      pause(0.1);
      
   end

% The following command was used to create the animated figure.    
% convert -antialias -loop 10000  -delay 7 -compress LZW Spring_frame10* Simple_harmonic_oscillator.gif
   

function [X, Y]=do_plot_spring(A, B, curls, sw);
%  plot a 3D spring, then project it onto 2D. theta controls the angle of projection.
%  The string starts at A and ends at B

   % will rotate by theta when projecting from 1D to 2D
   theta=pi/6;
   Npoints = 500;
   
   % spring length
   D = sqrt((A(1)-B(1))^2+(A(2)-B(2))^2);
   
   X=linspace(0, 1, Npoints);

   XX = linspace(-pi/2, 2*pi*curls+pi/2, Npoints);
   Y=-sw*cos(XX);
   Z=sw*sin(XX);
   
%  b gives the length of the small straight segments at the ends
%  of the spring (to which the wall and the mass are attached)
   b= 0.05; 

% stretch the spring in X to make it of length D - 2*b
   N = length(X);
   X = (D-2*b)*(X-X(1))/(X(N)-X(1));
   
% shift by b to the right and add the two small segments of length b
   X=[0, X+b X(N)+2*b]; Y=[Y(1) Y Y(N)]; Z=[Z(1) Z Z(N)]; 

   % project the 3D spring to 2D
   M=[cos(theta) sin(theta); -sin(theta) cos(theta)];
   N=length(X);
   for i=1:N;
      V=M*[X(i), Z(i)]';
      X(i)=V(1); Z(i)=V(2);
   end

%  shift the spring to start from 0
   X = X-X(1);
   
% now that we have the horisontal spring (X, Y) of length D,
% rotate and translate it to go from A to B
   Theta = atan2(B(2)-A(2), B(1)-A(1));
   M=[cos(Theta) -sin(Theta); sin(Theta) cos(Theta)];

   N=length(X);
   for i=1:N;
      V=M*[X(i), Y(i)]'+A';
      X(i)=V(1); Y(i)=V(2);
   end

function plot_wall(S, E, l, lw, wall_color)

%  Plot a wall from S to E.
   no=20; spacing=(E-S)/(no-1);
   
   plot([S, E], [0, 0], 'linewidth', 1.8*lw, 'color', wall_color);

   V=l*(0:0.1:1);

   for i=0:(no-1)
      plot(S+ i*spacing + V, V, 'color', wall_color)
   end
Public domain میں اس تخلیقی کام کے حقوق کا مالک ہوں اور اسے دائرہ عام میں شائع کرتا ہوں جس کا اطلاق عالمی سطح پر ہوتا ہے۔
بعض ملکوں میں یہ قانونی طور پر شاید ممکن نہ ہو؛ اگر ایسا ہے تو:
میں ہر ایک کو کسی بھی مقصد کے لیے بغیر کسی شرط کے اس تصویر کے استعمال کا حق تفویض کرتا/کرتی ہوں، بجز اس صورت کے جس میں کوئی قانونی رکاوٹ موجود ہو۔
Annotations
InfoField
This image is annotated: View the annotations at Commons

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

عکاسی

24 جون 2007

MIME type انگریزی

image/gif

فائل کا تاریخچہ

کسی خاص وقت یا تاریخ میں یہ فائل کیسی نظر آتی تھی، اسے دیکھنے کے لیے اس وقت/تاریخ پر کلک کریں۔

تاریخ/وقتتھمب نیلابعادصارفتبصرہ
رائج الوقت03:12، 24 جون 2007ءمورخہ 03:12، 24 جون 2007ء کا تھمب نیل116 × 359 (52 کلوبائٹ)Oleg Alexandrovtweak
03:10، 24 جون 2007ءمورخہ 03:10، 24 جون 2007ء کا تھمب نیل157 × 362 (51 کلوبائٹ)Oleg AlexandrovReverted to earlier revision
03:10، 24 جون 2007ءمورخہ 03:10، 24 جون 2007ء کا تھمب نیل116 × 359 (7 کلوبائٹ)Oleg Alexandrovtweak
02:42، 24 جون 2007ءمورخہ 02:42، 24 جون 2007ء کا تھمب نیل157 × 362 (51 کلوبائٹ)Oleg Alexandrov{{Information |Description= |Source=self-made with en:Matlab. Converted to gif animation with the en:ImageMagik convert tool. |Date= ~~~~~ |Author= Oleg Alexandrov }} {{PD-self}}

درج ذیل 2 صفحات اس فائل کو استعمال کر رہے ہیں:

فائل کا عالمی استعمال

مندرجہ ذیل ویکیوں میں یہ فائل زیر استعمال ہے:

اس فائل کا مزید عالمی استعمال دیکھیے۔