Skeda:Parabolic trajectory.svg

Nga testwiki
Kërceni tek navigimi Kërceni tek kërkimi
Skedari origjinal (skedë SVG, fillimisht 512 × 212 pixel, madhësia e skedës: 8 KB)

Kjo skedë është nga Wikimedia Commons dhe mund të përdoret nga projektet e tjera. Përshkrimi në faqen përshkruese të skedës është treguar më poshtë.

Përmbledhje

Përshkrimi
English: Illustration of a parabolic trajectory.
Data
Burimi Punë e juaja
Autori Oleg Alexandrov
SVG genesis
InfoField
 The SVG code is valid.
 This diagram was created with Matlab.
 and with Inkscape.

Licencim

Public domain Kjo skedë është lëshuar në public domain nga autori i saj, Oleg Alexandrov. Kjo aplikohet në të gjithë botën.
Në disa vende kjo mund të mos jetë e mundur ligjërisht; nëse është kështu:
Oleg Alexandrov i garanton çdokujt të drejtën për ta përdorur këtë punë për çdo qëllim, pa asnjë kusht, përveç rasteve kur këto kushte janë të kërkuara nga ligji.

Source code (MATLAB)

% illustration of a parabolic trajectory

function main()

   L=0.8;
   s=0.1;
   q=-0.4;
   N=100;

   arrow_size = 0.1;
   sharpness = 20;
   arrow_type = 1; 
   arrlen = 0.3; % arrow length
   tiny = 0.01;
   ball_radius = 0.05;
   
   X=linspace(-L, L, N);
   Y =L^2 - X.^2;
   Xl = linspace(-L-s, L+s, N);
   
   
% KSmrq's colors
   red    = [0.867 0.06 0.14];
   blue   = [0, 129, 205]/256;
   green  = [0, 200,  70]/256;
   yellow = [254, 194,   0]/256;
   white = 0.99*[1, 1, 1];
   black = [0, 0, 0];
   gray = 0.5*white;
   lw = 2.3;
   

   figure(1); clf; hold on; axis equal; axis off;
   plot(X, Y, 'linewidth', lw, 'linestyle', '--', 'color', blue);
   arrow([q-tiny, L^2-q^2], [q+arrlen-tiny, L^2-q^2-2*q*arrlen], lw, arrow_size, sharpness, arrow_type, red);
   ball(q, L^2 - q^2, ball_radius, gray)
   plot(Xl, 0*Xl, 'linewidth', 2*lw, 'color', black);

   
  %saveas(gcf, 'Parabolic_trajectory.eps', 'psc2')
  plot2svg('Parabolic_trajectory.svg');

function ball(x, y, radius, color) % draw a ball of given uniform color 
   Theta=0:0.1:2*pi;
   X=radius*cos(Theta)+x;
   Y=radius*sin(Theta)+y;
   H=fill(X, Y, color);
   set(H, 'EdgeColor', [0, 0, 0]);

function arrow(start, stop, thickness, arrow_size, sharpness, arrow_type, color)
 
% Function arguments:
% start, stop:  start and end coordinates of arrow, vectors of size 2
% thickness:    thickness of arrow stick
% arrow_size:   the size of the two sides of the angle in this picture ->
% sharpness:    angle between the arrow stick and arrow side, in degrees
% arrow_type:   1 for filled arrow, otherwise the arrow will be just two segments
% color:        arrow color, a vector of length three with values in [0, 1]
 
% convert to complex numbers
   i=sqrt(-1);
   start=start(1)+i*start(2); stop=stop(1)+i*stop(2);
   rotate_angle=exp(i*pi*sharpness/180);
 
% points making up the arrow tip (besides the "stop" point)
   point1 = stop - (arrow_size*rotate_angle)*(stop-start)/abs(stop-start);
   point2 = stop - (arrow_size/rotate_angle)*(stop-start)/abs(stop-start);
 
   if arrow_type==1 % filled arrow
 
      % plot the stick, but not till the end, looks bad
      t=0.5*arrow_size*cos(pi*sharpness/180)/abs(stop-start); stop1=t*start+(1-t)*stop;
      plot(real([start, stop1]), imag([start, stop1]), 'LineWidth', thickness, 'Color', color);
 
      % fill the arrow
      H=fill(real([stop, point1, point2]), imag([stop, point1, point2]), color);
      set(H, 'EdgeColor', 'none')
 
   else % two-segment arrow
      plot(real([start, stop]), imag([start, stop]),   'LineWidth', thickness, 'Color', color); 
      plot(real([stop, point1]), imag([stop, point1]), 'LineWidth', thickness, 'Color', color);
      plot(real([stop, point2]), imag([stop, point2]), 'LineWidth', thickness, 'Color', color);
   end

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

përshkruan

20 dhjetor 2007

image/svg+xml

data size anglisht

7.712 Bajti

checksum anglisht

202dfd7b871935cc90eee602e117a0fc525737cd

Historiku i skedarit

Kliko mbi një datë/orë për ta parë skedarin siç është shfaqur në atë kohë.

Data/OraMiniaturaPërmasatPërdoruesiKoment
e tanishme2 tetor 2024 17:55Miniaturë për versionin duke filluar nga 2 tetor 2024 17:55512 × 212 (8 KB)wikimediacommons>Glrxfix empty viewBox; delete width and height // Editing SVG source code using c:User:Rillke/SVGedit.js

faqe lidhet tek kjo skedë: