Jump to content

File:Serpentine curve.png

Page contents not supported in other languages.
This is a file from the Wikimedia Commons
From Wikipedia, the free encyclopedia

Original file (2,054 × 371 pixels, file size: 8 KB, MIME type: image/png)

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
current05:48, 19 April 2017Thumbnail for version as of 05:48, 19 April 20172,054 × 371 (8 KB)Ayane m57% file size reduction
15:43, 14 July 2007Thumbnail for version as of 15:43, 14 July 20072,054 × 371 (18 KB)Oleg Alexandrov{{Information |Description=Illustration of Serpentine curve |Source=self-made with en:Matlab |Date= ~~~~~ |Author= Oleg Alexandrov }} {{PD-self}} ==Source code (MATLAB)== <pre> <nowiki> % Serpentin

The following 2 pages use this file:

Global file usage

The following other wikis use this file: