3D Coordinates to Mesh with Vertices and Faces

Hello. I have a set of 3D points in an multidimensional array (XYZ) which need to be converted into some kind of mesh (ideally with vertices and faces), which can then be converted into a binary volume.
What is the best way to go about this? Any suggestions or examples would be great, thanks.

2 Commenti

How your XYZ data is? Gridded or scattered? Solutions depends on that.
Hello. My data can be divided into three X, Y, Z vectors. I can view this using Scatter3.

Accedi per commentare.

Risposte (2)

KSSV
KSSV il 9 Giu 2017
Modificato: KSSV il 9 Giu 2017
That case you have to look into delaunay and griddata
% some random data
N=20;
x=rand(N,1) ;
y=rand(N,1) ;
z=rand(N,1) ;
tri=delaunay(x,y);
trisurf(tri,x,y,z);

3 Commenti

Thanks KSSV. I tried this, which works for my data to some extent but the result gives unnecessary connections between points that aren't needed (results pic is attached). The larger faces in the results pic aren't required. Is there any way around this? Thanks.
try this:
shp = alphaShape(points(:,1),points(:,2),points(:,3));
where points is Nx3 xyz matrix.
also you can get elements and nodes matrixes via
[elements,nodes] = boundaryFacets(shp);

Accedi per commentare.

lokesh kumar
lokesh kumar il 25 Ago 2019
i HAVE THE TRAINGULATED DATA, How to plot into surf

Richiesto:

il 8 Giu 2017

Community Treasure Hunt

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

Start Hunting!

Translated by