Bestand:Sphere with three handles.png

Oorspronkelijk bestand(1.308 × 1.004 pixels, bestandsgrootte: 389 kB, MIME-type: image/png)


Beschrijving Illustration of a sphere with three handles.
Datum (UTC)
Bron self-made using MATLAB
Auteur Oleg Alexandrov
 
Dit diagram is gemaakt met MATLAB.
Public domain Ik, de auteursrechthebbende van dit werk, geef dit werk vrij in het publieke domein. Dit is wereldwijd van toepassing.
In sommige landen is dit wettelijk niet mogelijk; in die gevallen geldt:
Ik sta iedereen toe dit werk voor eender welk doel te gebruiken, zonder enige voorwaarden, tenzij zulke voorwaarden door de wet worden voorgeschreven.

Source code

% illustration of a sphere with three handles
 
   N = 100; % make 100 or so for good picture
 
   S = 6.0; % sphere radius
 
   r = 1.2; % torus cross section radius
   R = 2.8; % torus big radius
   Shift = 6.0; % shift torus away from origin
 
   L = max(S, 2*r+R+Shift);
 
   L = max(Shift + 2*r+R, S);
   X = linspace(-L, L, N);
   Y = linspace(-L, L, N);
   Z = linspace(-L, L, N);
 
 
   theta = pi/2.2; % angle between handles, measured from sphere center  

   W = zeros(N, N, N) + 100;
   Mat = [cos(theta) -sin(theta);
          sin(theta) cos(theta)];
 
   for i=1:N
      i
      for j=1:N
         for k=1:N
            x = X(i);
            y = Y(j);
            z = Z(k);
 
            W(i, j, k) = x^2+y^2+z^2-S^2; % sphere
 
            for q=0:2 % tori
               V = Mat*([x, y]');
               x = V(1); y = V(2);
               W(i, j, k) = min(W(i, j, k), ...
                                (sqrt((x-Shift)^2+y^2)-R)^2 + z^2-r^2);
            end
         end
      end
   end
 
 
   if 1==1
     % smooth a bit the places where the tori meet
      XM = -2:60/N:2;
      sigma = 1.5;
      SM = exp(-XM.^2/sigma^2);
      SM = SM/sum(SM);
 
      W = filter(SM, [1], W, [], 1);
      W = filter(SM, [1], W, [], 2);
      W = filter(SM, [1], W, [], 3);
   end
 
 
   figure(1); clf; hold on;
   axis equal; axis off;
 
   light_green=[184, 224, 98]/256; % light green
 
 
   H = patch(isosurface(X, Y, Z, W, 0));
   isonormals(X, Y, Z, W, H);
   mycolor = light_green;
 
   %set(H, 'FaceColor', light_green, 'EdgeColor','none', 'FaceAlpha', 1);
   %set(H, 'SpecularColorReflectance', 0.9, 'DiffuseStrength', 0.8);
   %set(H, 'FaceLighting', 'phong', 'AmbientStrength', 0.35);
   %set(H, 'SpecularExponent', 8, 'SpecularStrength', 0.2);
 
 
   set(H, 'FaceColor', mycolor, '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))
   view(-50, -54);
 
   camlight headlight;
   lighting phong;
%
 
   print('-dpng',  '-zbuffer',  '-r400', sprintf('Sphere_with_three_handles%d.png', N));

Bijschriften

Beschrijf in één regel wat dit bestand voorstelt

Items getoond in dit bestand

beeldt af

image/png

Bestandsgeschiedenis

Klik op een datum/tijd om het bestand te zien zoals het destijds was.

Datum/tijdMiniatuurAfmetingenGebruikerOpmerking
huidige versie23 jun 2008 06:28Miniatuurafbeelding voor de versie van 23 jun 2008 06:281.308 × 1.004 (389 kB)Oleg AlexandrovTweak
23 jun 2008 04:37Miniatuurafbeelding voor de versie van 23 jun 2008 04:371.596 × 1.112 (454 kB)Oleg Alexandrov{{Information |Description={{en|1=Sphere with three handles}} |Source=Own work by uploader |Author=Oleg Alexandrov |Date= |Permission=PD-self |other_versions= }} {{ImageUpload|full}}

Dit bestand wordt op de volgende pagina gebruikt:

Globaal bestandsgebruik

De volgende andere wiki's gebruiken dit bestand: