Main Content

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')
patch(x+0.8,y,'g')
patch(x+0.4,y+0.8,'b')
axis square tight 
alpha(0.3)

Figure contains an axes object. The axes object contains 3 objects of type patch.

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);    
s2.FaceAlpha = 'flat';

Figure contains an axes object. The axes object contains an object of type surface.

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)    
axis image

Figure contains an axes object. The axes object contains an object of type 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);    
hold off

Figure contains an axes object. The axes object contains 2 objects of type image.

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');
axis square tight
p1.FaceVertexAlphaData = 0.2;
p1.FaceAlpha = 'flat' ; 

Figure contains an axes object. The axes object contains an object of type patch.

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';
p1.FaceAlpha = 'interp';

Figure contains an axes object. The axes object contains an object of type patch.

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

sEarth = surface(py, px ,flip(pz));
sEarth.FaceColor = 'texturemap';
sEarth.EdgeColor = 'none';
sEarth.CData = earth;
hold on
sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02); 

sCloud.FaceColor = 'texturemap'; 
sCloud.EdgeColor = 'none';
sCloud.CData = clouds;

sCloud.FaceAlpha = 'texturemap';
sCloud.AlphaData = max(clouds,[],3);
hold off
view([80 2]) 
daspect([1 1 1])
axis off tight

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

| |