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 Comments

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.

Sign in to comment.

Answers (2)

KSSV
KSSV on 9 Jun 2017
Edited: KSSV on 9 Jun 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 Comments

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);

Sign in to comment.

i HAVE THE TRAINGULATED DATA, How to plot into surf

Asked:

on 8 Jun 2017

Commented:

on 28 Oct 2020

Community Treasure Hunt

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

Start Hunting!