Main Content

boundaryFacets

알파 셰이프의 경계 패싯

설명

예제

bf = boundaryFacets(shp)는 알파 셰이프의 경계를 구성하는 패싯을 나타내는 행렬을 반환합니다. 패싯은 2차원에서는 모서리 세그먼트를 나타내고, 3차원에서는 삼각형을 나타냅니다. 패싯의 꼭짓점은 shp.Points 행렬의 요소를 참조합니다.

bf = boundaryFacets(shp,RegionID)는 알파 셰이프 영역의 경계 패싯을 반환합니다. RegionID는 영역의 ID이며 1RegionIDnumRegions(shp)입니다.

[bf,P] = boundaryFacets(___)는 위에 열거된 구문 중 하나를 사용하여 꼭짓점 좌표 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.5를 사용하여 알파 셰이프를 만들고 플로팅합니다.

shp = alphaShape(P,1.5);
plot(shp)
axis equal

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

알파 셰이프의 경계만 계산하고 플로팅합니다.

[tri, xyz] = boundaryFacets(shp);
trisurf(tri,xyz(:,1),xyz(:,2),xyz(:,3),...
    'FaceColor','cyan','FaceAlpha',0.3) 
axis equal

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

입력 인수

모두 축소

알파 셰이프로, 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

출력 인수

모두 축소

경계 패싯으로, 행렬로 반환됩니다. bf의 크기는 m×n입니다. 여기서 m은 경계 패싯의 개수이고 n은 패싯당 꼭짓점의 개수입니다.

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

버전 내역

R2014b에 개발됨

참고 항목

| |