Ficheiro:Bump2D illustration.png

De testwiki
Saltar á navegación Saltar á procura
Ficheiro orixinal (1.604 × 986 píxeles; tamaño do ficheiro: 179 kB; tipo MIME: image/png)

Este ficheiro é de Wikimedia Commons e pode utilizarse noutros proxectos. A descrición da páxina de descrición do ficheiro móstrase a continuación.

Resumo

Descrición A bump function in 2D
Data
Orixe Obra propia
Autoría Oleg Alexandrov
PNG desenvolvimento
InfoField
 Esta PNG imaxe foi creada co MATLAB
Código fonte
InfoField

MATLAB code

% illustration of a bump function in two dimensions
function main()

   % the number of data points. More points means prettier picture.
   N = 300;

   % a function close to what we want, but not smooth
   Z = get_step_function (N);

   % a smooth function with small support, that will serve as mollifier
   W = get_mollifier     (N);

% get the convolution of the two, so a mollified step function
   S = conv2(Z, W);

% truncate S at the edges, and scale it
   p=0.2;
   [m, n] = size(S);
   m1 = floor(p*m)+1; m2=floor((1-p)*m)-1;
   n1 = floor(p*n)+1; n2=floor((1-p)*n)-1;
   S = S(m1:m2, n1:n2);
   S = 100*S/max(max(S));
   
% plot the surface
   figure(2); clf; hold on; axis equal; axis off;
   surf(S);
   
% make the surface beautiful
   shading interp;
   colormap autumn;

% add in a source of light
   camlight (-50, 54);
   
% viewing angle
   view(-40, 38);

   % save as png
  print('-dpng', '-r400', 'Bump2D_illustration_uncropped.png');

  % optionally, crop the margins
  !convert -trim Bump2D_illustration_uncropped.png Bump2D_illustration.png
  
% get a function which is 1 on a set, and 0 outside of it
function Z = get_step_function(N)
   XX = linspace(-1.5, 4, N);
   YY = linspace(-4, 4, N);
   [X, Y] = meshgrid(XX, YY);
   
   c = 2;
   k=1.2;
   shift=10;
   Z = (c^2-X.^2-Y.^2).^2 + k*(c-X).^3-shift;
   
   Z =1-max(sign(Z), 0);

function W = get_mollifier(N)
% now try to get a function with compact support
% as a mollifier
% We will cheat by using a gaussian

   a = 4;
   XX = linspace(-a, a, N);
   YY = linspace(-a, a, N);
   [X, Y] = meshgrid(XX, YY);
   
   K = 4;
   W = exp(-K*(X.^2+Y.^2));

   % truncate the Gaussian to make it with compact support
   trunc = 1e-2;
   W = max(W-trunc, 0);

Licenza

Public domain Eu, como posuidor dos dereitos de autor desta obra, libéroa para que pertenza ao dominio público. Isto é válido en todo o mundo.
Nalgúns países, isto pode non ser legalmente posible; entón:
Concedo a calquera o dereito de empregar esta obra para o propósito que considere oportuno, sen condicións, agás aquelas que sexan requiridas pola lei.

Pés de foto

Engade unha explicación dunha liña do que representa este ficheiro

Elementos retratados neste ficheiro

representa a entidade

115be195be93ff68b2c3752960f1921ada54db78

tamanho dos dados portugués

183.286 Byte

986 píxel

1.604 píxel

Historial do ficheiro

Prema nunha data/hora para ver o ficheiro tal e como estaba nese momento.

Data/HoraMiniaturaDimensiónsUsuarioComentario
actual8 de agosto de 2007 ás 04:15Miniatura da versión ás 04:15 do 8 de agosto de 20071.604 × 986 (179 kB)wikimediacommons>Oleg AlexandrovTrying to fix some odd issues with the bounding box.

A seguinte páxina usa este ficheiro: