Navigation

Operators and Keywords

Function List:

C++ API

Function File: trisurf (tri, x, y, z, c)
Function File: trisurf (tri, x, y, z)
Function File: trisurf (…, prop, val, …)
Function File: h = trisurf (…)

Plot a 3-D triangular surface.

In contrast to surf, which plots a surface mesh using rectangles, trisurf plots the mesh using triangles.

tri is typically the output of a Delaunay triangulation over the grid of x, y. Every row of tri represents one triangle and contains three indices into [x, y] which are the vertices of the triangles in the x-y plane. z determines the height above the plane of each vertex.

The color of the trimesh is computed by linearly scaling the z values to fit the range of the current colormap. Use caxis and/or change the colormap to control the appearance.

Optionally, the color of the mesh can be specified independently of z by supplying a color matrix, c. If z has N elements, then c should be an Nx1 vector for colormap data or an Nx3 matrix for RGB data.

Any property/value pairs are passed directly to the underlying patch object.

The optional return value h is a graphics handle to the created patch object.

See also: surf, triplot, trimesh, delaunay, patch, shading.

Demonstration 1

The following code

 clf;
 colormap ('default');
 N = 31;
 [x, y] = meshgrid (1:N);
 tri = delaunay (x(:), y(:));
 z = peaks (N);
 h = trisurf (tri, x, y, z, 'facecolor', 'interp');
 axis tight;
 zlim auto;
 title (sprintf ('facecolor = %s', get (h, 'facecolor')));

Produces the following figure

Figure 1

Demonstration 2

The following code

 clf;
 colormap ('default');
 N = 31;
 [x, y] = meshgrid (1:N);
 tri = delaunay (x(:), y(:));
 z = peaks (N);
 h = trisurf (tri, x, y, z, 'facecolor', 'flat');
 axis tight;
 zlim auto;
 title (sprintf ('facecolor = %s', get (h, 'facecolor')));

Produces the following figure

Figure 1

Demonstration 3

The following code

 clf;
 colormap ('default');
 old_state = rand ('state');
 restore_state = onCleanup (@() rand ('state', old_state));
 rand ('state', 10);
 N = 10;
 x = 3 - 6 * rand (N, N);
 y = 3 - 6 * rand (N, N);
 z = peaks (x, y);
 tri = delaunay (x(:), y(:));
 trisurf (tri, x(:), y(:), z(:));

Produces the following figure

Figure 1

Demonstration 4

The following code

 clf;
 colormap ('default');
 x = rand (100, 1);
 y = rand (100, 1);
 z = x.^2 + y.^2;
 tri = delaunay (x, y);
 trisurf (tri, x, y, z);

Produces the following figure

Figure 1

Demonstration 5

The following code

 clf;
 colormap ('default');
 x = rand (100, 1);
 y = rand (100, 1);
 z = x.^2 + y.^2;
 tri = delaunay (x, y);
 trisurf (tri, x, y, z, 'facecolor', 'interp');

Produces the following figure

Figure 1

Demonstration 6

The following code

 clf;
 colormap ('default');
 x = rand (100, 1);
 y = rand (100, 1);
 z = x.^2 + y.^2;
 tri = delaunay (x, y);
 trisurf (tri, x, y, z, 'facecolor', 'interp', 'edgecolor', 'k');

Produces the following figure

Figure 1

Package: octave