File:Homotopy with fixed endpoints.png

Made by myself with MATLAB.

Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Category:Self-published work#Homotopy%20with%20fixed%20endpoints.pngCategory:PD-self#Homotopy%20with%20fixed%20endpoints.png


Source code (MATLAB)

% illustrate homotopy with fixed endpoints
function main()

   lw=2;  % line width
   fs=25; % font size 
   h=1/100;
   tiny = 0.004;
   tinyrad=0.02;
   red = [1, 0, 0];
   white = 0.99*[1 1 1];

   % prepare the figure
   figure(1); clf; hold on; axis equal; axis off;

   % generate the curve on which the analytic continuation will take place
   XX=[-0.1, 0.3, 0.1]; YY=[0, 1, 1.5];
   Y=YY(1):h:YY(length(YY)); X=spline(YY, XX, Y);
   
   % plot a circle
   rad=0.4; plot_circle(X(1), Y(1), rad, lw)

   % plot the curves
   t=0; X=spline(YY, XX+[0, t, 0], Y); plot(X, Y, 'color', red, 'linewidth', lw);
   t=0.5; X=spline(YY, XX+[0, t, 0], Y); plot(X, Y, 'color', red, 'linewidth', lw);
   t=-0.8; X=spline(YY, XX+[0, t, 0], Y); plot(X, Y, 'color', red, 'linewidth', lw);
   t=-0.6; X=spline(YY, XX+[0, t, 0], Y); plot(X, Y, 'color', red, 'linewidth', lw);
   t=-0.4; X=spline(YY, XX+[0, t, 0], Y); plot(X, Y, 'color', red, 'linewidth', lw);

   % plot text
   N = length(X);
   Nh = floor(N/2);
   text(X(1), Y(1)-tiny*fs, '\it{P}', 'fontsize', fs)
   text(X(N), Y(N)+tiny*fs, '\it{Q}', 'fontsize', fs)
   text(X(Nh)-0.65, Y(Nh), '\gamma_0', 'fontsize', fs)
   text(X(Nh)+0.06, Y(Nh), '\gamma_s', 'fontsize', fs)
   text(X(Nh)+1.1, Y(Nh), '\gamma_1', 'fontsize', fs)
   text(X(1)-0.26, Y(1)-0.16, '\it{U}', 'fontsize', fs)
   

   % plot some balls for emphasis
   ball(X(1), Y(1), tinyrad, red);
   ball(X(N), Y(N), tinyrad, red);

  % plot a dummy point to avoid having the picture cutt off at edges
  % when saving to eps (a matlab bug)
   plot(X(1), Y(1)-1.1*rad, '*', 'color', white)
   
   saveas(gcf, 'homotopy_with_fixed_endpoints.eps', 'psc2');
   
function plot_circle(x, y, r, lw)

   N=100;
   Theta=0:(1/N):2.1*pi;
   X=r*cos(Theta);
   Y=r*sin(Theta);

   plot(x+X, y+Y, 'linewidth', lw);

function plot_text(x, y, shiftx, shifty, str, fs, tinyrad, color)
   text(x+shiftx, y+shifty, str, 'fontsize', fs);
   ball(x, y, tinyrad, color);
      
function ball(x, y, r, color)
   Theta=0:0.1:2*pi;
   X=r*cos(Theta)+x;
   Y=r*sin(Theta)+y;
   H=fill(X, Y, color);
   set(H, 'EdgeColor', 'none');
Category:Analytic continuation Category:Homotopy Category:Images with Matlab source code Category:Files by User:Oleg Alexandrov from en.wikipedia
This math image could be re-created using vector graphics as an SVG file. This has several advantages; see Commons:Media for cleanup for more information. If an SVG form of this image is available, please upload it and afterwards replace this template with {{vector version available|new image name}}.
It is recommended to name the SVG file “Homotopy with fixed endpoints.svg”—then the template Vector version available (or Vva) does not need the new image name parameter.
Category:Math images that should use vector graphics#%20Homotopy%20with%20fixed%20endpoints.pngCategory:PNG that should use vector graphics Category:Media missing infobox template
Category:Analytic continuation Category:Files by User:Oleg Alexandrov from en.wikipedia Category:Files with no machine-readable author Category:Files with no machine-readable source Category:Homotopy Category:Images with Matlab source code Category:Math images that should use vector graphics Category:Media missing infobox template Category:PD-self Category:PNG that should use vector graphics Category:Pages using deprecated source tags Category:Self-published work