surf2patch

Convert surface data to patch data

Syntax

fvc = surf2patch(Z)
fvc = surf2patch(Z,C)
fvc = surf2patch(X,Y,Z)
fvc = surf2patch(X,Y,Z,C)
fvc = surf2patch(...,'triangles')
[f,v,c] = surf2patch(...)

Description

fvc = surf2patch(h)

converts the geometry and color data from the surface object identified by the handle h into patch format and returns the face, vertex, and color data in the struct fvc. You can pass this struct directly to the patch command.

fvc = surf2patch(Z) calculates the patch data from the surface's ZData matrix Z.

fvc = surf2patch(Z,C) calculates the patch data from the surface's ZData and CData matrices Z and C.

fvc = surf2patch(X,Y,Z) calculates the patch data from the surface's XData, YData, and ZData matrices X, Y, and Z.

fvc = surf2patch(X,Y,Z,C) calculates the patch data from the surface's XData, YData, ZData, and CData matrices X, Y, Z, and C.

fvc = surf2patch(...,'triangles') creates triangular faces instead of the quadrilaterals that compose surfaces.

[f,v,c] = surf2patch(...) returns the face, vertex, and color data in the three arrays f, v, and c instead of a struct.

Examples

expand all

Calculate Patch Data from Surface Data

Use the sphere command to generate the XData, YData, and ZData of a surface. Then, calculate the patch data. Pass the ZData (z) to surf2patch as both the third and fourth arguments � the third argument is the ZData and the fourth argument is taken as the CData. You must do this since the patch command does not automatically use the z-coordinate data for the color data, as does the surface command.

Since patch is a low-level command, you must set the view and shading to produce the same results produced by the surf command.

[x,y,z] = sphere;
figure
patch(surf2patch(x,y,z,z));
shading faceted;
view(3)

Calculate Patch Data Using Surface Object

Calculate face, vertex, and color data from a surface whose handle has been passed as an argument.

figure
s = surf(peaks);
patch(surf2patch(s));
delete(s)
shading faceted;
view(3)

Was this topic helpful?