How to create mesh from coordinates

Hi,
I have a 3D object (as shown in figure) defined entirely by x,y,z coordinates. Below shows the plot using scatter3().
I do not have the triangulation information.
My ultimate goal is to convert it to an .*stl file. How do I mesh it? delaunay(x,y,z) is giving something like this which is not correct.
Do I need some kind of algorithm to mesh it ?
Or else can I convert the coordinates to a .ply file to use meshlab to mesh it ? I don't know how to convert. Since this is a closed figure meshgrid() etc. are not working.
Thank you for the help.

 Accepted Answer

More Answers (1)

If you have R2014b or later consider using boundary() to generate an outside hull.

4 Comments

Hi,
Thank you for the answer. But it does not work as I want it to. I got the below figure.
It is connecting many unnecessary points. Same with alphashape().
Could you suggest some algorithm or any other method ? How can I convert it to a pointcloud file ? Or could you provide an example with an arbitrary closed 3D shape, say a sphere?
Thank you
This is what I got using alphashape (), which is close but there is a hole in the middle.
Note: This object was first generated in geodetic coordinates and then converted to spherical.
Another view of it.
pc = pointCloud( [x(:), y(:), z(:)] );
pcwrite(pc, 'OutputFileName.ply');
This requires the Computer Vision Toolbox.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!