Is there a way to get the mesh which the function "surf" produces? By that I mean I need the usual mesh format which is a list of vertices and a list of faces.

 Réponse acceptée

Mike Garrity
Mike Garrity le 4 Sep 2015

0 votes

Yes, the surf2patch command.
[x,y,z] = peaks(10);
h = surf(x,y,z);
[f,v,c] = surf2patch(h);
At this point:
  • v is a 100x3 array containing the 100 vertices
  • f is an 81x4 array containing indices into v for the 81 faces
  • c is an vector of the 100 data values which would be used for coloring the vertices

1 commentaire

Albi
Albi le 4 Sep 2015
Exactly what I was looking for. Thank you.

Connectez-vous pour commenter.

Plus de réponses (1)

Adam
Adam le 3 Sep 2015

0 votes

If you mean the X, Y and Z meshes that define the surface then the XData, YData and ZData properties of the surface object contain these and the CData contains the colour data for the ZData values.

3 commentaires

Albi
Albi le 3 Sep 2015
No, I mean the relation between faces and vertices. For example, if the four 3D points
points= [1 0 0; 2 3 4; 4 5 6; 5 6 9]
are the corners of a square face, that face would be represented as
face = [1,2,3,4]
where the numbers in the face vector represent the row index of its vertices in the points list above. At least, this is the standard method of defining a mesh and I'm assuming matlab internally uses this method too. This is also the format that matlab's trimesh and quadmesh function use too.
Adam
Adam le 3 Sep 2015
I'm not too familiar with mesh definitions, but FaceNormals and VertexNormals seem to be the only other sets of data you can extract from a surface object but they are m-by-n-by-3 arrays.
Albi
Albi le 3 Sep 2015
Yeah, I checked the properties and found nothing I could use. Looking at the surf doc page, I saw that they briefly explain the algorithm behind the surf function. I could write it myself, but it would be nice to have it for free. Looks like surf can be used only for visualization purposes.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by