Image:Jordan illustration.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 attempting to create a freely licensed media file repository. You can help.

[edit] Summary

Made by myself with Matlab.

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


[edit] Licensing

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


[edit] Source code

function main()

   % the function whose zero level set and inner and outer approximations will be drawn
   f = inline('60-real(z).^2-1.2*imag(z).^2-0.006*(real(z)-6).^4-0.01*(imag(z)-5).^4', 'z');
   
   M=10; i=sqrt(-1); lw=2.5;
   figure(1); clf; hold on; axis equal; axis off;
   
   if  1==0
      for p=-M:M
         for q=-M:M
            z=p+i*q;
            if f(z)>0
               plot(real(z), imag(z), 'r.')
            else
               plot(real(z), imag(z), 'b.')
            end
         end
      end
   end
   
% draw the zero level set of f
   h=0.1;
   XX = -M:h:M; YY = -M:h:M;
   [X, Y] = meshgrid (XX, YY); Z = f(X+i*Y);
   [C, H] = contour(X, Y, Z, [0, 0]);
   set(H, 'linewidth', lw, 'EdgeColor', [0;0;156]/256);
   
% plot the outer polygonal curve
   Start=5+6*i; Dir=-i; Sign=-1; 
   plot_poly (Start, Dir, Sign, f, lw, [139;10;80]/256);
   
% plot the inner polygonal curve
   Sign=1; Start=4+5*i; 
   plot_poly (Start, Dir, Sign, f, lw, [0;100;0]/256);
   
%  a dummy plot to avoid a matlab bug causing some lines to appear too thin
   plot(8.5, 7.5, '*', 'color', 0.99*[1, 1, 1]);
   plot(-4.5, -5, '*', 'color', 0.99*[1, 1, 1]);
   
   saveas(gcf, 'jordan_illustration.eps', 'psc2');

function plot_poly (Start, Dir, Sign, f, lw, color)

   Current_point = Start;
   Current_dir   = Dir;

   Ball_rad = 0.03;
   
   for k=1:100
      
      Next_dir=-Current_dir;

      % from the current point, search to the left, down, and right and see where to go next
      for l=1:3
         Next_dir = Next_dir*(Sign*i);
         
         if Sign*f(Current_point+Next_dir)>=0 & Sign*f(Current_point+(Sign*i)*Next_dir) < 0
            break;
         end
      end
      
      Next_point = Current_point+Next_dir;

      plot([real(Current_point), real(Next_point)], [imag(Current_point), imag(Next_point)], 'linewidth', lw, 'color', color);

      round_ball(Current_point, Ball_rad, color'); % just for beauty, to round off some rough corners
      
      Current_dir=Next_dir;
      Current_point = Next_point;

   end


function round_ball(z, r, color)
   x=real(z); y=imag(z);
   Theta = 0:0.1:2*pi;
   X = r*cos(Theta)+x;
   Y = r*sin(Theta)+y;
   Handle = fill(X, Y, color);
   set(Handle, 'EdgeColor', color);

The following pages on the English Wikipedia link to this file (pages on other projects are not listed):