Image:Serpentine curve.png

From Wikipedia, the free encyclopedia

Wikimedia Commons logo This is a file from the Wikimedia Commons. The description on its description page there is shown below.
Commons is a freely licensed media file repository. You can help.
Description

Illustration of Serpentine curve

Source

self-made with en:Matlab

Date

15:43, 14 July 2007 (UTC)

Author

Oleg Alexandrov

Permission
(Reusing this image)

see below



Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.


Afrikaans | Alemannisch | Aragonés | العربية | Asturianu | Български | Català | Česky | Cymraeg | Dansk | Deutsch | Eʋegbe | Ελληνικά | English | Español | Esperanto | Euskara | Estremeñu | فارسی | Français | Galego | 한국어 | हिन्दी | Hrvatski | Ido | Bahasa Indonesia | Íslenska | Italiano | עברית | Kurdî / كوردی | Latina | Lietuvių | Latviešu | Magyar | Македонски | Bahasa Melayu | Nederlands | ‪Norsk (bokmål)‬ | ‪Norsk (nynorsk)‬ | 日本語 | Polski | Português | Ripoarisch | Română | Русский | Shqip | Slovenčina | Slovenščina | Српски / Srpski | Svenska | ไทย | Tagalog | Türkçe | Українська | Tiếng Việt | Walon | ‪中文(简体)‬ | ‪中文(繁體)‬ | zh-yue-hant | +/-

[edit] 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')
   

File history

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

Date/TimeDimensionsUserComment
current15: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 pages on the English Wikipedia link to this file (pages on other projects are not listed):