Concavehull

This function tries to convert the convexhull of a 3D pointcloud into a (more) concave one.
949 Downloads
Updated 21 Feb 2014

View License

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
Created with R2013a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Bounding Regions in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.2.0.0

Corrected some typos..

1.1.0.0

1.0.0.0