Перейти на страницу файла на Викискладе

Файл:Sphere with three handles.png

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Исходный файл(1308 × 1004 пкс, размер файла: 389 КБ, MIME-тип: image/png)

Описание Illustration of a sphere with three handles.
Дата (UTC)
Источник self-made using MATLAB
Автор Oleg Alexandrov
 
Это diagram было создано с помощью MATLAB.
Public domain Я, владелец авторских прав на это произведение, передаю его в общественное достояние. Это разрешение действует по всему миру.
В некоторых странах это не может быть возможно юридически, в таком случае:
Я даю право кому угодно использовать данное произведение в любых целях без каких-либо условий, за исключением таких условий, которые требуются по закону.

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));

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект

У этого свойства есть некоторое значение без элемента в

image/png

История файла

Нажмите на дату/время, чтобы посмотреть файл, который был загружен в тот момент.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий04:28, 23 июня 2008Миниатюра для версии от 04:28, 23 июня 20081308 × 1004 (389 КБ)Oleg AlexandrovTweak
02:37, 23 июня 2008Миниатюра для версии от 02:37, 23 июня 20081596 × 1112 (454 КБ)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}}

Следующие 2 страницы используют этот файл:

Глобальное использование файла

Данный файл используется в следующих вики: