Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Cambio de transparencia de imágenes, parches o superficies

En este ejemplo se muestra cómo modificar la transparencia de las imágenes, los parches y las superficies.

Transparencia de todos los objetos en los ejes

Se hace referencia a los valores de transparencia como valores alfa. Utilice la función alpha para definir la transparencia de todos los objetos de imágenes, parches o superficies en los ejes actuales. Especifique un valor de transparencia entre 0 (totalmente transparente) y 1 (totalmente opaco).

t = 0:0.1:2*pi;
x = sin(t);
y = cos(t);

figure
patch(x,y,'r')            % make a red circular patch
patch(x+0.8,y,'g')        % make a green circular path
patch(x+0.4,y+0.8,'b')    % make a blue circular path
axis square tight         % set axis to square

alpha(0.3)                % set all patches transparency to 0.3

Transparencia de superficies individuales

La transparencia de una superficie se define mediante su propiedad AlphaData. Defina los datos alfa como un valor escalar o una matriz de valores especificando la transparencia de cada vértice de la superficie. La propiedad FaceAlpha indica cómo se determina la transparencia de las caras de la superficie a partir de la transparencia de los vértices.

[X,Y,Z] = peaks(20);
s2 = surf(X,Y,Z);

s2.AlphaData = gradient(Z);    % set vertex transparencies
s2.FaceAlpha = 'flat';

Transparencia de imágenes individuales

Al igual que las superficies, la transparencia de una imagen se define mediante su propiedad AlphaData. Para las imágenes, defina los datos alfa como un valor escalar o una matriz de valores especificando la transparencia de cada elemento de los datos de imágenes.

Por ejemplo, utilice la transparencia para superponer dos imágenes. Primero, muestre la imagen de la Tierra.

earth = imread('landOcean.jpg');
image(earth)    % display Earth image
axis image

A continuación, añada la capa de nubes a la imagen de la Tierra mediante la transparencia.

clouds = imread('cloudCombined.jpg');
image(earth)
axis image
hold on

im = image(clouds);
im.AlphaData = max(clouds,[],3);    % set transparency to maximum cloud value
hold off

Transparencia de parches individuales

La transparencia de un parche se define mediante sus propiedades FaceAlpha y FaceVertexAlphaData. Para configurar una transparencia constante en todo el parche, defina FaceVertexAlphaData en una constante entre 0 (totalmente transparente) y 1 (totalmente opaco) y defina la propiedad FaceAlpha en 'flat'.

cla
p1 = patch(x,y,'r');             % make a red circular patch
axis square tight                % set axis to square

p1.FaceVertexAlphaData = 0.2;    % Set constant transparency 
p1.FaceAlpha = 'flat' ;          % Interpolate to find face transparency

Para configurar una transparencia que varíe en todo el parche, defina FaceVertexAlphaData en una matriz de valores especificando la transparencia en cada vértice o cada cara del parche. La propiedad FaceAlpha indica cómo las transparencias de las caras se determinan mediante FaceVertexAlphaData. Si se especifican los datos alfa para los vértices, FaceAlpha se debe definir en 'interp'.

p1.FaceVertexAlphaData = x';   % Set vertex transparency to x values
p1.FaceAlpha = 'interp' ;      % Interpolate to find face transparency

Transparencia con aplicación de texturas

La aplicación de texturas aplica una imagen en 2D sobre una superficie en 3D. Una imagen se puede aplicar en una superficie definiendo la propiedad CData en los datos de imágenes y definiendo la propiedad FaceColor en 'texturemap'.

En este ejemplo se crea una vista en 3D de la Tierra y las nubes. Se crean superficies esféricas y se utiliza la aplicación de texturas para aplicar las imágenes de la Tierra y las nubes sobre las superficies.

[px,py,pz] = sphere(50);                % generate coordinates for a 50 x 50 sphere

cla
sEarth = surface(py, px ,flip(pz));   
sEarth.FaceColor = 'texturemap';        % set color to texture mapping
sEarth.EdgeColor = 'none';              % remove surface edge color
sEarth.CData = earth;                   % set color data 

hold on
sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02); 

sCloud.FaceColor = 'texturemap';        % set color to texture mapping
sCloud.EdgeColor = 'none';              % remove surface edge color
sCloud.CData = clouds;                  % set color data 
 
sCloud.FaceAlpha = 'texturemap';        % set transparency to texture mapping
sCloud.AlphaData = max(clouds,[],3);    % set transparency data 
hold off

view([80 2])                            % specify viewpoint 
daspect([1 1 1])                        % set aspect ratio
axis off tight                          % remove axis and set limits to data range

Las imágenes que se utilizan en este ejemplo proceden de Visible Earth.

Agradecimientos: Imagen del NASA Goddard Space Flight Center por Reto Stöckli (superficie terrestre, agua superficial, nubes). Mejoras por Robert Simmon (color del océano, composición, globos en 3D, animación). Datos y soporte técnico: MODIS Land Group; MODIS Science Data Support Team; MODIS Atmosphere Group; MODIS Ocean Group. Datos adicionales: USGS EROS Data Center (topografía); USGS Terrestrial Remote Sensing Flagstaff Field Center (Antártida); Defense Meteorological Satellite Program (iluminación nocturna).

Consulte también

| |