Equally distributed points of known distance on a 3D solid body/3d surface

10 views (last 30 days)
Hi,
I am trying to plot a pattern of points on a solid 3d body (a cone of known dimension), which can also be a 3d conic surface. I need the points on the surface/body to be in an equal triangular pattern or tesselation such that the distance between points in always an equal known, changeable value (such as 10mm for example). I require the x,y,z coordinates of these points on the cone. I also need to be able to change the distance between the points (i.e. the side length). Something like the image below, but the sides need to be equilateral and I need to be able to specify the triangle dimension. I thought using a mesh might be the easiest way.
I have found several meshing tools, however none of them let me change/specify the distance constraint. I have also tried for a 3d surface but have the same issue. Is there a way to do this in Matlab? Otherwise is there perhaps a better method of getting the same result? I have the stl file of the body, as well as the 3d surface.
Any assistance would be appreciated.
Thanks and kind regards,
Sabrina
  2 Comments
John D'Errico
John D'Errico on 24 Aug 2022
I would point out that the triangulation you show is not truly equidistant, but merely a good one, perhaps reasonably close. However, I don't think there is a tool in MATLAB that will produce such a triangulation for a fully general surface. It would be nice, as others have asked for something similar, surprisingly often.
Sabrina Myburgh
Sabrina Myburgh on 24 Aug 2022
Hi John,
Thanks for the reply. It does not have to be exact, rather reasonably close. As long as I can specify the distance between points it is fine. Any suggestions?
Thanks,
Sabrina

Sign in to comment.

Answers (1)

Sarthak
Sarthak on 13 Sep 2023
Hi Sabrina,
I understand that you need the points on the surface/body to be in an equal triangular pattern.
You can use the “surf” function to plot the surface of the body, and then use the “trimesh” function to create a triangular mesh of the surface. You can then use the “trisurf” function to plot the triangular mesh.
There is no current way to set the spacing between adjacent triangles in a triangular mesh in MATLAB. You can still create a triangular mesh of a surface, but you will not be able to control the spacing between the triangles.
For more information about the above functions, you can refer to the documentation of trimesh and trisurf.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!