# Changing Transparency of Images, Patches or Surfaces

This example shows how to modify transparency of images, patches and surfaces.

### Transparency for All Objects in Axes

Transparency values are referred to as alpha values. Use the `alpha` function to set the transparency for all image, patch, and surface objects in the current axes. Specify a transparency value between 0 (fully transparent) and 1 (fully opaque).

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

### Transparency for Individual Surfaces

The transparency of a surface is defined by its `AlphaData` property. Set the alpha data as either a scalar value or a matrix of values specifying the transparency of each vertex of the surface. The `FaceAlpha` property indicates how the transparency of the surface faces are determined from vertex transparency.

```[X,Y,Z] = peaks(20); s2 = surf(X,Y,Z); s2.AlphaData = gradient(Z); s2.FaceAlpha = 'flat';```

### Transparency for Individual Images

Like surfaces, the transparency of an image is also defined by its `AlphaData` property. For images, set the alpha data as either a scalar value or a matrix of values specifying the transparency of each element in the image data.

For example, use transparency to overlay two images. First, display the image of the Earth.

```earth = imread('landOcean.jpg'); image(earth) axis image```

Then, add a cloud layer to the image of the Earth using transparency.

```clouds = imread('cloudCombined.jpg'); image(earth) axis image hold on im = image(clouds); im.AlphaData = max(clouds,[],3); hold off```

### Transparency for Individual Patches

The transparency of a patch is defined by its `FaceAlpha` and `FaceVertexAlphaData` properties. For constant transparency across the entire patch, set the `FaceVertexAlphaData` to a constant between 0 (fully transparent) and 1 (fully opaque), and set the `FaceAlpha` property to `'flat'`.

```cla p1 = patch(x,y,'r'); axis square tight p1.FaceVertexAlphaData = 0.2; p1.FaceAlpha = 'flat' ; ```

For transparency that varies across the patch, set the `FaceVertexAlphaData` to a matrix of values specifying the transparency at each vertex or each face of the patch. The `FaceAlpha` property then indicates how the face transparencies are determined using the `FaceVertexAlphaData`. If alpha data is specified for vertices, `FaceAlpha` must be set to `'interp'`.

```p1.FaceVertexAlphaData = x'; p1.FaceAlpha = 'interp';```

### Transparency with Texture Mapping

Texture mapping maps a 2-D image onto a 3-D surface. An image can be mapped to a surface by setting the `CData` property to the image data and setting the `FaceColor` property to be `'texturemap'`.

This example creates a 3-D view of the earth and clouds. It creates spherical surfaces and uses texture mapping to map the images of the earth and clouds onto the surfaces.

```[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```

The images used in this example are from Visible Earth.

Credit: NASA Goddard Space Flight Center Image by Reto Stöckli (land surface, shallow water, clouds). Enhancements by Robert Simmon (ocean color, compositing, 3D globes, animation). Data and technical support: MODIS Land Group; MODIS Science Data Support Team; MODIS Atmosphere Group; MODIS Ocean Group Additional data: USGS EROS Data Center (topography); USGS Terrestrial Remote Sensing Flagstaff Field Center (Antarctica); Defense Meteorological Satellite Program (city lights).