Dosiero:Level set method.jpg

El Vikipedio

Level_set_method.jpg (89KB, MIME type: image/jpeg)

La bildo estas kopiita de wikipedia:en. La originala priskribo estas:


Public domain
Tiu ĉi bildo estas publika havaĵo. Je ĝi ne estas kopirajto, ĉu ĉar la bildo estas malnova, ĉu ĉar la kopirajto-posedanto konsentas, ĉu ĉar ne eblas ĝin kopirajtigi. Tio ĉi validas tutmonde.

Illustration of level set method.

Matlab source code (public domain)

function level_set_method()
   figure(1); clf; % pop up a figure, and clean it up
for i=1:3 % make a loop to draw the six pictures in pairs
   level_disp(i);
end

print('-djpeg100',  '-r100', 'level_set_method.jpg') % save to file. 

function level_disp(p)

   Lx=2.5; Ly=2.5; % box is [-Lx Lx] x [-Ly, Ly]
   N=60;  % number of points (don't make it big, code will be slow)
   heights=[0.7+eps, 0.00001, -0.7+eps]; % cut the surface at these heights 
   height=heights(p); % current cut

   [X, Y]=meshgrid(-Lx:(1/N):Lx, -Ly:(1/N):Ly);     % X and Y coordinates
   Z=height-0.5*(X-1.78).*X.^2.*(X+1.78)-Y.^2;  % Z=f(X, Y) -surface

   lowest=-4;
   [m, n]=size(Z); 
   for i=1:m
      for j=1:n
         if Z(i, j)< lowest; % truncate the surface somewhere
            Z(i, j)=NaN;
         end
      end
   end

% draw the sufrace and the plane cut
   figure(1); subplot('Position', [(p-1)/3, 0., 0.33, 0.5]); hold on; 
   surf(X, Y, Z, 'FaceColor','red', 'EdgeColor','none', 'FaceAlpha', 1); 
   surf(X, Y, zeros(m, n), 'FaceColor','blue', 'EdgeColor','none', 'FaceAlpha', 0.3); 
   camlight left;lighting phong; % make nice lightning 
   axis([-Lx Lx -Ly Ly lowest 1.8]); axis equal;  axis off; %the coordinate box
   view(-23, 34)        % angle of view (polar coordinates)

% draw the shape (cross-section)
   figure(1); subplot('Position', [(p-1)/3, 0.5, 0.33, 0.5]); % subwindow
   [c, stuff] = contour(X, Y, Z, [0, 0]); % draw the contours.
   l=c(2, 1);
   x=c(1,2:(l+1));  y=c(2,2:(l+1)); % get x and y of contours
   H=fill(x, y, 0.6*[1, 1, 1]); set(H, 'EdgeColor', 'none'); % draw the shape

   [u, v]=size(c);
   if v > l+2 % special case: two connected components
      x=c(1,(l+3):(2*l)); y=c(2,(l+3):(2*l)); % contours
      hold on; % hold the graph for the second component
      H=fill(x, y, 0.6*[1, 1, 1]); set(H, 'EdgeColor', 'none'); 
   end
   axis equal; axis off; axis([-Lx Lx -Ly Ly]); % frame size
date/time username edit summary
20:18, 26 December 2005 en:User:128.84.98.150
04:02, 5 July 2005 en:User:Superm401 (user put {{PD}} in descriptoin)
01:48, 24 December 2004 en:User:Oleg Alexandrov
01:48, 24 December 2004 en:User:Oleg Alexandrov
01:48, 24 December 2004 en:User:Oleg Alexandrov
01:47, 24 December 2004 en:User:Oleg Alexandrov (added source code)
03:20, 25 November 2004 en:User:Olegalexandrov (Illustration of level set method. {{PD}})

[redaktu] Historio de la dosiero

Legend: (cur) = this is the current file, (del) = delete this old version, (rev) = revert to this old version.

Click on date to download the file or see the image uploaded on that date.

Historio de alŝutoj

(nun) = ĉi tiu estas la nuna versio de la dosiero, (for) = forigu ĉi tiun malnovan version, (res) = restarigu ĉi tiun malnovan version.
Por vidi la dosieron laŭdate, alklaku la daton.

  • (for) (nun) 15:31, 19. Mar 2006 . . Maksim-bot (Diskuto | kontribuoj) . . 800×600 (90 808 bitokoj) (La bildo estas kopiita de wikipedia:en. La originala priskribo estas: {{PD}} Illustration of level set method. Matlab source code (public domain) <pre> function level_set_method() figure(1); clf; % pop up a figure, and clean it up for i=1:3 % make a)

Neniu paĝo ligas al ĉi tiu dosiero.

Aliaj lingvoj