Concavehull
This function tries to convert the convexhull of a 3D-pointcloud that was generated by Qhull/convexhulln into a (more) concave hull. Equally, output is in format k [n x 3] which defines n triangles as rows in XYZ. If the function finds a triangle that has 2 sides whose midpoints are further away than thresh from another point in the pointcloud, it deletes the triangle and substitutes it with three new triangles that are defined by the nearest points in the datacloud to the
old two midpoints.
The algorithm is surely not optimal yet and I'd be very happy myself if someone had ideas or even implementations for improvements. I still uploaded it, since I did look for something similar myself for a long time and did not find anything of use for me.
inputs: – XYZ: pointcloud of x-y-z-coordinates
thresh: threshold defining how close all of the midpoints of the
lines lie away from its closest point in the pointcloud to make
the algorithm stop. Still, even if set, the algorithm sometimes
stops before that, if the distance doesn't improve anymore. In
other words, the algorithm doesn't guarantee that the threshold
is always matched.
output: – k: triangulated indices (as output of concavehulln)
Cite As
Andreas Horn (2024). Concavehull (https://www.mathworks.com/matlabcentral/fileexchange/45644-concavehull), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.