Main Content

alphaTriangulation

알파 셰이프를 채우는 삼각분할

설명

예제

tri = alphaTriangulation(shp)는 알파 셰이프의 영역을 정의하는 삼각분할을 반환합니다. tri의 각 행은 꼭짓점 ID(shp.Points 행렬의 행 번호)로 정의된 삼각형이나 사면체를 지정합니다.

tri = alphaTriangulation(shp,RegionID)는 알파 셰이프의 영역에 대한 삼각분할을 반환합니다. RegionID는 영역의 ID이며 1RegionIDnumRegions(shp)입니다.

[tri,P] = alphaTriangulation(___)은 위에 열거된 구문 중 하나를 사용하여 꼭짓점 좌표 P의 행렬도 반환합니다.

예제

모두 축소

3차원 점 집합을 만듭니다.

[x1, y1, z1] = sphere(24);
x1 = x1(:);
y1 = y1(:);
z1 = z1(:);
x2 = x1+5;
P = [x1 y1 z1; x2 y1 z1];
P = unique(P,'rows');

알파 반지름 1을 사용하여 포인트 클라우드에 대한 알파 셰이프를 만들고 플로팅합니다.

shp = alphaShape(P,1);
plot(shp)

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

alphaTriangulation을 사용하여 알파 셰이프의 영역을 정의하는 삼각분할을 복구할 수 있습니다.

tri = alphaTriangulation(shp);

알파 셰이프를 구성하는 사면체의 총 개수를 구합니다.

numtetrahedra = size(tri,1)
numtetrahedra = 3760

입력 인수

모두 축소

알파 셰이프로, alphaShape 객체로 지정됩니다. 자세한 내용은 alphaShape를 참조하십시오.

예: shp = alphaShape(x,y)(x,y) 점 좌표에서 2차원 alphaShape 객체를 만듭니다.

알파 셰이프에 있는 영역의 ID 번호로, 1numRegions(shp) 사이의 양의 정수 스칼라로 지정됩니다.

알파 셰이프는 점 집합과 파라미터에 따라 여러 개의 작은 영역을 포함할 수 있습니다. 이러한 작은 영역에는 각각 고유한 RegionID가 할당됩니다. 이 ID는 가장 큰 면적이나 부피부터 가장 작은 면적이나 부피의 순으로 영역에 번호가 매겨진 것입니다. 예를 들어, 두 개의 영역을 포함하는 3차원 알파 셰이프를 가정하겠습니다. 둘 중 부피가 더 큰 영역의 RegionID는 1이고, 부피가 더 작은 영역의 RegionID는 2입니다.

예: shp.RegionThreshold = area(shp,numRegions(shp)-2);는 2차원 알파 셰이프 shp에서 가장 작은 두 개의 영역을 표시하지 않습니다.

데이터형: double

출력 인수

모두 축소

삼각분할로, 행렬로 반환됩니다. tri의 크기는 mtri×nv입니다. 여기서 mtri는 알파 셰이프에 있는 삼각형이나 사면체의 개수이고 nv는 꼭짓점의 개수입니다. nv의 값은 2차원 알파 셰이프에서는 3이고 3차원 알파 셰이프에서는 4입니다.

사용자가 alphaTriangulation에 지정하는 출력값의 개수에 따라 tri에서 사용되는 꼭짓점 인덱싱이 변경될 수 있습니다.

꼭짓점 좌표로, 행렬로 반환됩니다. P의 크기는 N×dim입니다. 여기서 N은 알파 셰이프에 있는 점의 개수이고 dim은 2차원 알파 셰이프의 경우 2이고 3차원 알파 셰이프의 경우 3입니다.

버전 내역

R2014b에 개발됨