凸包の計算手法
MATLAB® では、凸包の計算にいくつかの方法が提供されています。
convhull関数およびconvhulln関数を使用する。詳細については、Convex Hull Computation with convhullを参照してください。delaunayTriangulationクラスのconvexHullメソッドを使用する。詳細については、Convex Hull Computation with delaunayTriangulationを参照してください。アルファ半径が
Infである関数alphaShapeを使用します。詳細については、Alpha Shapesを参照してください。
convhull 関数は、2 次元と 3 次元の凸包の計算をサポートします。convhulln 関数は、N 次元 (N ≥ 2) の凸包の計算をサポートします。関数 convhull は、ロバスト性と性能がより優れているため、2 次元または 3 次元の計算に推奨されます。
delaunayTriangulation クラスは、Delaunay 三角形分割による凸包の 2 次元および 3 次元の計算をサポートします。この計算は、専用の関数 convhull と関数 convhulln ほど効率的ではありません。ただし、delaunayTriangulation の点集合があり、凸包が必要な場合は、convexHull メソッドを使用して既存の三角形分割から凸包をより効率的に計算することができます。
また、関数 alphaShape はアルファ半径入力パラメーターを Inf に設定することにより、凸包の 2 次元および 3 次元の計算をサポートします。ただし、delaunayTriangulation と同様、alphaShape を使用した凸包の計算は、convhull または convhulln を直接使用するより効率が劣ります。例外は、既に作成されているアルファ形状オブジェクトを使用する場合です。
参考
convhull | convhulln | convexHull | delaunayTriangulation | alphaShape