## Documentation Center |

On this page… |
---|

MATLAB^{®} defines a surface by the *z*-coordinates
of points above a grid in the *x*-*y* plane,
using straight lines to connect adjacent points. The `mesh` and `surf` functions
display surfaces in three dimensions.

`mesh`produces wireframe surfaces that color only the lines connecting the defining points.`surf`displays both the connecting lines and the faces of the surface in color.

MATLAB colors surfaces by mapping z-data values to indexes into the figure colormap.

To display a function of two variables, *z* = *f *(*x*,*y*),

Generate

`X`and`Y`matrices consisting of repeated rows and columns, respectively, over the domain of the function.Use

`X`and`Y`to evaluate and graph the function.

The `meshgrid` function
transforms the domain specified by a single vector or two vectors `x` and `y` into
matrices `X` and `Y` for use in
evaluating functions of two variables. The rows of `X` are
copies of the vector `x` and the columns of `Y` are
copies of the vector `y`.

This example evaluates and graphs the two-dimensional `sinc` function,
sin(*r*)/*r*, between the *x* and *y* directions. `R` is
the distance from the origin, which is at the center of the matrix.
Adding `eps` (a MATLAB command
that returns a small floating-point number) avoids the indeterminate
0/0 at the origin:

[X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z,'EdgeColor','black')

By default, MATLAB uses the current colormap to color the
mesh. However, this example uses a single-colored mesh by specifying
the `EdgeColor` surface property.

You can create a mesh with see-through faces by disabling hidden line removal:

`hidden off`

A surface plot is similar to a mesh plot except that the rectangular
faces of the surface are colored. The color of each face is determined
by the values of `Z` and the colormap (a colormap
is an ordered list of colors). These statements graph the `sinc` function
as a surface plot, specify a colormap, and add a color bar to show
the mapping of data to color:

```
surf(X,Y,Z)
colormap hsv
colorbar
```

You can make the faces of a surface transparent to a varying
degree. Transparency (referred to as the alpha value) can be specified
for the whole object or can be based on an `alphamap`,
which behaves similarly to colormaps. For example,

```
surf(X,Y,Z)
colormap hsv
alpha(.4)
```

produces a surface with a face alpha value of 0.4. Alpha values range from 0 (completely transparent) to 1 (not transparent).

Lighting is the technique of illuminating an object with a directional light source. In certain cases, this technique can make subtle differences in surface shape easier to see. Lighting can also be used to add realism to three-dimensional graphs.

This example uses the same surface as the previous examples, but colors it red and removes the mesh lines. A light object is then added to the left of the "camera" (the camera is the location in space from where you are viewing the surface):

surf(X,Y,Z,'FaceColor','red','EdgeColor','none') camlight left; lighting phong

The figure toolbar and the camera toolbar provide ways to explore
three-dimensional graphics interactively. Display the camera toolbar
by selecting **Camera Toolbar** from the figure **View** menu.

The following picture shows both toolbars with the **Rotate
3D** tool selected.

These tools enable you to move the camera around the surface object, zoom, add lighting, and perform other viewing operations without issuing commands.

The following picture shows the surface viewed by orbiting the
camera toward the bottom using **Rotate 3D**. You
can see the tool's cursor icon on the surface. As you drag, the viewing
azimuth and elevation read out in the lower-left corner of the axes:.

Was this topic helpful?