计算凸包的方法
MATLAB® 提供多种计算凸包的方式:
使用
convhull和convhulln函数。有关详细信息,请参阅Convex Hull Computation with convhull。使用
delaunayTriangulation类的convexHull方法。有关详细信息,请参阅Convex Hull Computation with delaunayTriangulation。使用
alphaShape函数以及 alpha 半径Inf。有关详细信息,请参阅Alpha Shapes。
convhull 函数支持在二维和三维空间中计算凸包。convhulln 函数支持在 N 维空间 (N ≥ 2) 中计算凸包。对于二维或三维计算,建议使用 convhull 函数,因为其稳定性和性能更好。
delaunayTriangulation 类支持从德劳内三角剖分进行凸包的二维或三维计算。这种计算方式的效率不如专用的 convhull 和 convhulln 函数。但是,如果有一个点集的 delaunayTriangulation,并且需要凸包,则 convexHull 方法可从现有的三角剖分更高效地计算凸包。
alphaShape 函数还通过将 alpha 半径输入参数设置为 Inf,来支持凸包的二维或三维计算。但是,与 delaunayTriangulation 相似,使用 alphaShape 计算凸包不如直接使用 convhull 或 convhulln 高效。在处理以前创建的阿尔法形状对象时例外。
另请参阅
convhull | convhulln | convexHull | delaunayTriangulation | alphaShape