Main Content

isInterior

들로네 삼각분할 내부의 쿼리 점

설명

예제

TF = isInterior(DT)는 2차원 제약 조건이 적용되는 들로네 삼각분할의 삼각형이 경계가 지정된 기하학 영역 내부에 있는지 여부를 나타내는 논리값으로 구성된 열 벡터를 반환합니다. TF의 요소는 DT의 대응하는 삼각형이 영역 내부에 있을 경우에는 1(true)이고, 그렇지 않을 경우에는 0(false)입니다.

예제

모두 축소

지정된 경계 내의 2차원 제약 조건이 적용되는 들로네 삼각분할의 삼각형을 계산하고 플로팅합니다.

모양이 정방형 프레임인 기하학 영역을 만듭니다.

outerprofile = [-5 -5; -3 -5; -1 -5;  1 -5; 
                 3 -5;  5 -5;  5 -3;  5 -1; 
                 5  1;  5  3;  5  5;  3  5; 
                 1  5; -1  5; -3  5; -5  5; 
                -5  3; -5  1; -5 -1; -5 -3];
innerprofile = outerprofile.*0.5;
P = [outerprofile; innerprofile];

모서리 제약 조건을 정의합니다.

outercons = [(1:19)' (2:20)'; 20 1;];
innercons = [(21:39)' (22:40)'; 40 21];
C = [outercons; innercons];

제약 조건이 적용되는 들로네 삼각분할(Delaunay Triangulation)을 만듭니다.

DT = delaunayTriangulation(P,C);

내부 정사각형과 외부 정사각형을 빨간색으로 강조 표시하여 삼각분할을 플로팅합니다.

triplot(DT)  
hold on 
plot(DT.Points(innercons',1),DT.Points(innercons',2), ...
     '-r','LineWidth',2)  
plot(DT.Points(outercons',1),DT.Points(outercons',2), ...
     '-r','LineWidth',2)
axis equal  

Figure contains an axes object. The axes object contains 3 objects of type line.

내부 정사각형과 외부 정사각형을 빨간색으로 강조 표시하고, 내부 정사각형과 외부 정사각형 사이의 삼각형만 플로팅합니다.

figure
TF = isInterior(DT);
triplot(DT.ConnectivityList(TF,:),DT.Points(:,1),DT.Points(:,2))  
hold on
plot(DT.Points(outercons',1),DT.Points(outercons',2), ...
     '-r','LineWidth',2)
plot(DT.Points(innercons',1),DT.Points(innercons',2), ...
     '-r','LineWidth',2)
axis equal

Figure contains an axes object. The axes object contains 3 objects of type line.

입력 인수

모두 축소

제약 조건이 적용되는 들로네 삼각분할로, 경계가 지정된 기하학 영역을 정의하는 제약 조건이 적용되는 가장자리 집합이 있는 스칼라 2차원delaunayTriangulation 객체로 지정됩니다. 유계 영역은 서로 교차하거나 겹치지 않는 여러 개의 제한된 모서리로 둘러싸인 영역입니다.

데이터형: delaunayTriangulation

  • 경계 제약 조건이 서로 교차하거나 겹칠 경우 isInterior는 부정확하거나 일관되지 않은 결과를 생성할 수 있습니다. 이 같은 동작을 방지하려면 서로 교차하거나 겹치지 않는 하나 이상의 닫힌 경계를 만드는 제약 조건을 사용하십시오. 경계 제약 조건이 교차하거나 겹치는 부분 없이 중첩(Nested)된 경우 경계를 가로지를 때마다 상태가 내부 상태 또는 외부 상태로 차례로 바뀌게 됩니다.

확장 기능

스레드 기반 환경
MATLAB®의 backgroundPool을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool을 사용해 코드 실행 속도를 높일 수 있습니다.

버전 내역

R2013a에 개발됨