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

조회 수: 15 (최근 30일)
三
2024년 1월 8일
댓글: 2024년 3월 17일
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
Matt J
Matt J 2024년 1월 8일
편집: Matt J 2024년 1월 8일
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?
三
2024년 1월 9일
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!

댓글을 달려면 로그인하십시오.

채택된 답변

George Abrahams
George Abrahams 2024년 1월 10일
편집: George Abrahams 2024년 1월 10일
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
三
2024년 3월 17일
Thank you very much for your detailed answer! It really helped me! Thank you for your kindness!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by