Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of 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 shows how to evaluate and graph 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 very small value) prevents a hole in the mesh at the point where `R = 0`

.

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

By default, MATLAB uses the current colormap to color the mesh.

This example shows how to graph the `sinc`

function as a surface plot, specify a colormap, and add a color bar to show the mapping of data to color.

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

```
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z)
colormap hsv
colorbar
```

This example shows how 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.

```
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z)
colormap hsv
alpha(.4)
```

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

This example shows 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).

[X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; surf(X,Y,Z,'FaceColor','red','EdgeColor','none') camlight left; lighting phong

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.

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.

Was this topic helpful?