Main Content

convhulln

N차원 볼록 껍질(Convex Hull)

설명

예제

k = convhulln(P)는 행렬 P에 있는 점의 N차원 볼록 껍질을 계산합니다.

k = convhulln(P,opts)는 볼록 껍질을 계산할 때 사용되는 Qhull 옵션도 지정합니다.

예제

[k,vol] = convhulln(___)은 위에 열거된 구문 중 하나를 사용하여 볼록 껍질의 부피 vol도 반환합니다.

예제

모두 축소

3차원 점으로 구성된 행렬을 생성하고 볼록 껍질과 그 부피를 계산합니다.

P = rand(10,3);
[k,vol] = convhulln(P);

볼록 껍질을 플로팅합니다.

trisurf(k,P(:,1),P(:,2),P(:,3),'FaceColor','cyan')

Figure contains an axes object. The axes object contains an object of type patch.

볼록 껍질의 부피를 표시합니다.

vol
vol = 0.1857

입력 인수

모두 축소

점으로, 대응하는 차원에 대한 좌표가 열에 담긴 행렬로 지정됩니다. 예를 들어, 2차원 점 집합을 정의하려면 P의 첫 번째 열에 x 좌표를, 두 번째 열에 대응하는 y 좌표를 배치하십시오.

Qhull 옵션으로, 사용할 Qhull 알고리즘을 나타내는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 옵션 목록을 보려면 Qhull control options를 참조하십시오.

기본적으로 2차원, 3차원 및 4차원 입력값의 경우 opts{'Qt'}로 설정됩니다. 5차원 이상 입력값의 경우에는 opts{'Qt','Qx'}로 설정됩니다.

출력 인수

모두 축소

인덱스로, 행렬로 반환됩니다.

  • 2차원 점의 경우 k는 각 행이 블록 껍질의 모서리를 나타내는 2열 행렬입니다. 값은 입력 점의 행 인덱스를 나타냅니다.

  • 3차원 점의 경우 k는 각 행이 블록 껍질을 구성하는 삼각분할의 패싯을 나타내는 3열 행렬입니다. 값은 입력 점의 행 인덱스를 나타냅니다.

  • N차원 점의 경우 k는 N열 행렬입니다. 값은 입력 점의 행 인덱스를 나타냅니다.

볼록 껍질의 부피(2차원의 경우 면적)로, 스칼라로 반환됩니다.

  • convhulln 출력값을 2차원에 플로팅하려면 plot 함수를 사용하십시오. convhulln 출력값을 3차원에 플로팅하려면 trisurf 또는 trimesh를 사용하십시오.

  • 2차원과 3차원 입력값을 사용할 때의 알고리즘 효율성을 높이려면 convhull 함수를 사용하거나 triangulation 또는 delaunayTriangulation 객체를 생성하고 convexHull 객체 함수를 사용하는 것이 좋습니다.

알고리즘

convhulln은 Qhull [1]을 기반으로 합니다. 자세한 내용은 http://www.qhull.org/를 참조하십시오. 저작권 정보를 확인하려면 http://www.qhull.org/COPYING.txt를 참조하십시오.

참고 문헌

[1] Barber, C.B., D.P. Dobkin, and H.T. Huhdanpaa. “The Quickhull Algorithm for Convex Hulls.” ACM Transactions on Mathematical Software, Vol. 22, No. 4, Dec. 1996, p 469–483.

확장 기능

버전 내역

R2006a 이전에 개발됨