Main Content

surf2patch

Convert surface data to patch data

Syntax

fvc = surf2patch(h)
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, h, into patch format. The output, fvc, is a structure containing the face, vertex, and color data. You can pass this structure 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

collapse all

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)

Figure contains an axes. The axes contains an object of type patch.

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)

Figure contains an axes. The axes contains an object of type patch.

Introduced before R2006a