Fitxer:Parabolic trajectory.svg

De testwiki
Salta a la navegació Salta a la cerca
Fitxer original (fitxer SVG, nominalment 512 × 212 píxels, mida del fitxer: 8 Ko)

Aquest fitxer prové de Wikimedia Commons i pot ser usat per altres projectes. La descripció de la seva pàgina de descripció es mostra a continuació.

Resum

Descripció
English: Illustration of a parabolic trajectory.
Data
Font Treball propi
Autor Oleg Alexandrov
SVG genesis
InfoField
 El codi font d'aquest SVG és vàlid.
 Aquesta imatge vectorial ha estat creada amb MATLAB
 and with Inkscape.

Llicència

Public domain S'ha alliberat aquesta obra al domini públic pel seu autor Oleg Alexandrov. Això s'aplica a tot el món.
En alguns països això pot no ser legalment possible, en tal cas:
Oleg Alexandrov concedeix a tothom el dret d'usar aquesta obra per a qualsevol propòsit, sense cap condició llevat d'aquelles requerides per la llei.

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

Llegendes

Afegeix una explicació d'una línia del que representa aquest fitxer

Elements representats en aquest fitxer

representa l'entitat

Historial del fitxer

Cliqueu una data/hora per veure el fitxer tal com era aleshores.

Data/horaMiniaturaDimensionsUsuari/aComentari
actual17:55, 2 oct 2024Miniatura per a la versió del 17:55, 2 oct 2024512 × 212 (8 Ko)wikimediacommons>Glrxfix empty viewBox; delete width and height // Editing SVG source code using c:User:Rillke/SVGedit.js

La pàgina següent utilitza aquest fitxer: