This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

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.


Compute isosurface end-cap geometry


fvc = isocaps(X,Y,Z,V,isovalue)
fvc = isocaps(V,isovalue)
fvc = isocaps(...,'enclose')
fvc = isocaps(...,'whichplane')
[f,v,c] = isocaps(...)


fvc = isocaps(X,Y,Z,V,isovalue) computes isosurface end-cap geometry for the volume data V at isosurface value isovalue. The arrays X, Y, and Z define the coordinates for the volume V.

The struct fvc contains the face, vertex, and color data for the end-caps and can be passed directly to the patch command.

fvc = isocaps(V,isovalue) assumes the arrays X, Y, and Z are defined as [X,Y,Z] = meshgrid(1:n,1:m,1:p) where [m,n,p] = size(V).

fvc = isocaps(...,'enclose') specifies whether the end-caps enclose data values above or below the value specified in isovalue. The 'enclose' option can be either 'above' (default) or 'below'.

fvc = isocaps(...,'whichplane') specifies on which planes to draw the end-caps. Possible values for 'whichplane' are 'all' (default), 'xmin', 'xmax', 'ymin', 'ymax', 'zmin', or 'zmax'.

[f,v,c] = isocaps(...) returns the face, vertex, and color data for the end-caps in three arrays instead of the struct fvc.

isocaps(...) without output arguments draws a patch with the computed faces, vertices, and colors.


collapse all

This example uses a data set that is a collection of MRI slices of a human skull. It illustrates the use of isocaps to draw the end-caps on this cutaway volume.

The red isosurface shows the outline of the volume (skull) and the end-caps show what is inside of the volume.

The patch created from the end-cap data (p2) uses interpolated face coloring, which means the gray colormap and the light sources determine how it is colored. The isosurface patch (p1) used a flat red face color, which is affected by the lights, but does not use the colormap.

load mri
D = squeeze(D);
D(:,1:60,:) = [];
p1 = patch(isosurface(D, 5),'FaceColor','red',...
p2 = patch(isocaps(D, 5),'FaceColor','interp',...
axis tight
camlight left
lighting gouraud

Extended Capabilities

Introduced before R2006a