File:Serpentine curve.png

原始文件 (2,054 × 371像素,文件大小:8 KB,MIME类型:image/png


描述 Illustration of Serpentine curve
日期 (UTC)
来源 self-made with en:Matlab
作者 Oleg Alexandrov
 
本PNG 位图使用MATLAB创作.
Public domain 我,本作品著作权人,释出本作品至公有领域。这适用于全世界。
在一些国家这可能不合法;如果是这样的话,那么:
我无条件地授予任何人以任何目的使用本作品的权利,除非这些条件是法律规定所必需的。

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')

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描绘内容

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2017年4月19日 (三) 05:482017年4月19日 (三) 05:48版本的缩略图2,054 × 371(8 KB)Ayane m57% file size reduction
2007年7月14日 (六) 15:432007年7月14日 (六) 15:43版本的缩略图2,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

以下页面使用本文件:

全域文件用途

以下其他wiki使用此文件: