File:Serpentine curve.png

From testwiki
Jump to navigation Jump to search
Original file (2,054 × 371 pixels, file size: 8 KB, MIME type: image/png)

This file is from Wikimedia Commons and may be used by other projects. The description on its file description page there is shown below.

Description Illustration of Serpentine curve
Date (UTC)
Source self-made with en:Matlab
Author Oleg Alexandrov
 This diagram was created 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.

Source code (MATLAB)

% Serpentine curve illustration

function main()

   % linewidth and font size
   lw= 6; 
   fs = 20;

% colors
   red=[0.867 0.06 0.14];
   blue = [0, 129, 205]/256;
   green = [0, 200,  70]/256;
   black = [0, 0, 0];
   white = 0.99*[1, 1, 1];


   N=500;  % number of points (don't make it big, code will be slow)

   Lx1 = -5; Lx2 = 5; Ly1 = -4; Ly2 = -Ly1;

   bd = 0.1;
   for i = 1:2

% Set up the plotting window
	  figure(1); clf; set(gca, 'fontsize', fs, 'linewidth', lw/4);
	  hold on; axis equal; grid on;
	  figure(2); clf; hold on; axis equal; axis off;
	  
	  [X, Y]=meshgrid(linspace(Lx1, Lx2, N), linspace(Ly1, Ly2, N));  
	  
	  x = X; y = Y;
	  a = 1; b = 1;
	  Z = x.^2.*y+a*b*y-a^2*x;
	  
%  graph the curves using 'contour' in figure (2)
	  figure(2); [c, stuff] = contour(X, Y, Z, [0, 0]);
	  
%  extract the curves from c and graph them in figure(1) using 'plot'
%  need to do this kind of convoluted work since plot2svg can't save
%  the result of 'contour' but can save the result of 'plot'   

	  
	  [m, n] = size(c);
	  while n > 0
		 
		 l=c(2, 1);
		 x=c(1,2:(l+1));  y=c(2,2:(l+1)); % get x and y of contours
		 figure(1); plot(x, y, 'color', red, 'linewidth', lw/2);
		 
		 c = c(:, (l+2):n);
		 [m, n] = size(c);

%		 Lx1 = min(Lx1, min(x) - bd); Lx2 = max(Lx2, max(x) + bd);
%		 Ly1 = min(Ly1, min(y) - bd); Ly2 = max(Ly2, max(y) + bd);
		 Lx1 = min(x) - bd; Lx2 = max(x) + bd;
		 Ly1 = min(y) - bd; Ly2 = max(y) + bd;
	  end
	  
	  figure(1); axis equal; axis ([Lx1, Lx2, Ly1, Ly2]);
   end

   saveas(gcf, 'Serpentine curve.eps', 'psc2')

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

14 July 2007

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current06:48, 19 April 2017Thumbnail for version as of 06:48, 19 April 20172,054 × 371 (8 KB)wikimediacommons>Ayane m57% file size reduction

The following page uses this file: