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.

 Akzeptierte Antwort

Mike Garrity
Mike Garrity am 4 Sep. 2015

0 Stimmen

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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Adam
Adam am 3 Sep. 2015

0 Stimmen

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 Kommentare

Albi
Albi am 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 am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Tags

Gefragt:

am 3 Sep. 2015

Kommentiert:

am 4 Sep. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by