File:Triple torus array.png

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Original file (1,123 × 990 pixels, file size: 250 KB, MIME type: image/png)

Summary

Description
English: Illustration of a triple torus
Date
Source Own work
Author Oleg Alexandrov
PNG development
InfoField
 This diagram was created with MATLAB.

Licensing

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

% illustration of a triple torus, obtained as an isosurface
function main()

   % big and small radii of the torus
   R = 3; r = 1; 

   % c controls the transition from one ring to the other
   c = 1.3*pi/2;
   
   Kb = R+r;
  
   h = 0.1; % h is the grid size. Smaller h means prettier picture.
   
   X = (-Kb-h):h:(5*Kb+h); m = length(X);
   Y = (-Kb-h):h:(Kb+h);   n = length(Y);
   Z = (-r-h):h:(r+h);     k = length(Z);
 
   W = zeros(m, n, k); % the zero level set of this function will be the desired shape
 
   for i=1:m
      for j=1:n
         x = X(i); x = my_map(x, Kb, c);   % map from two torii to one torus
         y = Y(j); 
         W(i, j, :) = (sqrt(x^2+y^2)-R)^2 + Z.^2-r^2; % torus eqn, vectorize in Z
      end
   end

   figure(4); clf; hold on; axis equal; axis off;

   H = patch(isosurface(W, 0));
   isonormals(W, H);
      
   light_green=[184, 224, 98]/256;

   % set some propeties
   set(H, 'FaceColor', light_green, 'EdgeColor','none', 'FaceAlpha', 1);
   set(H, 'SpecularColorReflectance', 0.1, 'DiffuseStrength', 0.8);
   set(H, 'FaceLighting', 'phong', 'AmbientStrength', 0.3);
   set(H, 'SpecularExponent', 108);

   daspect([1 1 1]);
   axis tight;
   colormap(prism(28))
      
% viewing angle
   view(-146, 42);

% add in a source of light
   camlight (-50, 54); lighting phong;

% save as png
  print('-dpng', '-r500', sprintf('Triple_torus_illustration.png'));
   
% This function constructs the second and third rings in the triple torus
% by mapping from the first one.
function y=my_map(x, K, c)

   if x > 2*K
      y = -my_map(4*K - x, K, c);
   else

      if x > K
         x = 2*K - x;
      end
      
      if x < K-c
         y = x;
      else
         y = (K-c) + sin((x - (K-c))*(pi/2/c));
      end
      
   end
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 “Triple torus array.svg”—then the template Vector version available (or Vva) does not need the new image name parameter.

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

256,314 byte

990 pixel

1,123 pixel

image/png

7b9f535c911d64c19fc22775851ac9cfc0304990

File history

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

Date/TimeThumbnailDimensionsUserComment
current23:47, 12 July 2008Thumbnail for version as of 23:47, 12 July 20081,123 × 990 (250 KB)wikimediacommons>Oleg Alexandrov{{Information |Description={{en|1=x}} |Source=Own work by uploader |Author=Oleg Alexandrov |Date=x |Permission=x |other_versions=x }} x {{ImageUpload|full}} Category:x

The following page uses this file: