How to take some points uniformly on the surface of the 3D model

15 vues (au cours des 30 derniers jours)
三
le 8 Jan 2024
Commenté : le 17 Mar 2024
I have an irregular three-dimensional surface, which includes points and surfaces. Now I want to evenly take some points on the surface of the model, and the interval between these points is 1 cm. I hope that the distance between them is the shortest distance along the surface of the model, rather than the space distance. The effect I want to achieve is shown in the image below, where yellow is the evenly distributed points.
What should I do specifically? Thank you!
  2 commentaires
Matt J
Matt J le 8 Jan 2024
Modifié(e) : Matt J le 8 Jan 2024
It needs more explanation. Suppose the surface was a sphere whose circuference at the equator is 4.5 cm. Obvously you would not be able to spread the points at 1 cm uniform intervals around the equator, or around any great circle of the sphere. What should happen?
三
le 9 Jan 2024
Thank you very much for reminding me, I would like to say that 1 cm is an arbitrary value, I mean how to distribute points evenly on the surface of such an irregular model, thank you!

Connectez-vous pour commenter.

Réponse acceptée

George Abrahams
George Abrahams le 10 Jan 2024
Modifié(e) : George Abrahams le 10 Jan 2024
Firstly, I'm assuming your model is in a triangular mesh format. If it's a point cloud, you can triangulate it with the alphaShape function. If it's a volume, you can use the isosurface function.
Then you have 2 options. Neither are trivial.
  • Poisson disc sampling. This produces a tightly-packed set of random points with a minimum-distance between them. The naive approach is to repeatedly select random points on the surface and reject them if they're too close to any other points. Here are a few implementations applied to 3D meshes, although none in MATLAB: [1] [2] [3] [4] [5].
  1 commentaire
三
le 17 Mar 2024
Thank you very much for your detailed answer! It really helped me! Thank you for your kindness!

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by