How to fill a 3d volume with non-overlapping structures?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Carson Purnell
am 28 Feb. 2022
Bearbeitet: Carson Purnell
am 25 Mär. 2022
I have a problem that I haven't seem any general solution for in other answers. I need to randomly place arbitrary, irregular shapes (macromolecules, if it matters) into a 3d array volume without overlapping. I don't need packing, but ideally being ale to hit high density is good.
I have a few hamfisted ideas of how to do this, all of which seem inelegant, slow, and error-prone:
- add a uniform high value to all prospective inputs, check for overlap via finding excessively high values after placement and reverting if an overlap value is generated in the array. Seems the most ideal, as it works well with irregular shapes.
- randomly choose a centroid, and exhaustively check hundreds-thousands of points within the prospective object's radius to find if anything else is present. place only if nothing is found.
- generate centroids as plot points, finding the nearest points and checking that the combined radius doesn't overstep the distance
Is there any more simple and reliable way to do this? A function that could do a basic overlap check? something on the file exchange that already accumulates shapes into a 3d volume without overlap? Or just a better strategy?
3 Kommentare
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 3-D Volumetric Image Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!