File:Simple set2.png

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Original file(1,267 × 1,014 pixels, file size: 6 KB, MIME type: image/png)

Captions

Captions

Add a one-line explanation of what this file represents

Summary[edit]

Description Made by myself with matlab.
Date 7 February 2007 (original upload date)
Source Own work
Author Oleg Alexandrov

Licensing[edit]

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

% split a union of rectangles into a union of rectangles without overlaps
function main()

   M=10; imag_root=sqrt(-1); lw=2.5; Ball_rad=0.03;

   figure(2); clf; hold on; axis equal; axis off;
   
% plot the outer polygonal curve
   color = [139;10;80]/256;
   
   X=[-2.3677    1.7624    0.1177    4.6499   -3.6469    0.6659    3.4803    6.8794];
   Y=[-3.1177    0.2814   -1.1440    2.6937     -0.4496  3.8268    1.5241    5.1425];

%  a dummy plot to avoid a matlab bug causing some lines to appear too thin
   C=1.05;
   plot(C*min(X), C*min(Y), '*', 'color', 0.99*[1, 1, 1]);
   plot(C*max(X), C*max(Y), '*', 'color', 0.99*[1, 1, 1]);

   % plot the big rectangles, and fill their interiors
   n=length(X)/2;
   for i=1:n
      ax=X(2*i-1); bx=X(2*i);
      ay=Y(2*i-1); by=Y(2*i);

      % plot the rectangle
      plot([ax bx bx ax ax], [ay ay by by ay], 'linewidth', lw, 'color', color);

      % round off the corners (a cosmetic thing)
      round_ball(ax+imag_root*ay, Ball_rad, color');
      round_ball(ax+imag_root*by, Ball_rad, color');
      round_ball(bx+imag_root*ay, Ball_rad, color');
      round_ball(bx+imag_root*by, Ball_rad, color');

   end

% plot the interiors all the small rectangles
   XS=sort(X); YS = sort (Y);

   for l=1:(length(XS)-1);
      for m=1:(length(YS)-1)
	 cx=XS(l); dx=XS(l+1);
	 cy=YS(m); dy=YS(m+1);
	 
	 success=0; % don't fill a rectangle more than once (will show up darker then)
	 for i=1:n
	    ax=X(2*i-1); bx=X(2*i);
	    ay=Y(2*i-1); by=Y(2*i);
	    if ax <= cx & dx <= bx & ay <= cy & dy <= by & success ==0 
	       success=1;
	       fill([cx dx dx cx], [cy cy dy dy], color'/2, 'FaceAlpha', 0.3, 'linewidth', 0.01, 'EdgeAlpha', 0);
	    end
	    
	    end
      end
   end
   
% plot the edges of all rectanges
   for i=1:n
      ax=X(2*i-1); bx=X(2*i);
      ay=Y(2*i-1); by=Y(2*i);
	 
      for l=1:length(XS);
	 u=XS(l); 
	 if ax < u & u < bx
	    plot([u u], [ay, by], 'linewidth', lw, 'color', color);
	 end
	 
	 
      end
      
      for l=1:length(YS);
	 v=YS(l); 
	 if ay < v & v < by
	    plot([ax bx], [v, v], 'linewidth', lw, 'color', color);
	 end
	 
	 
      end
   end
   
   
   saveas(gcf, 'simple_set2.eps', 'psc2');
   
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);
This math image could be re-created using vector graphics as an SVG file. This has several advantages; see Commons:Media for cleanup for more information. If an SVG form of this image is available, please upload it and afterwards replace this template with {{vector version available|new image name}}.


It is recommended to name the SVG file “Simple set2.svg”—then the template Vector version available (or Vva) does not need the new image name parameter.

File history

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

Date/TimeThumbnailDimensionsUserComment
current04:01, 7 February 2007Thumbnail for version as of 04:01, 7 February 20071,267 × 1,014 (6 KB)Oleg Alexandrov (talk | contribs)Made by myself with matlab.

There are no pages that use this file.

File usage on other wikis