Main Content

inpolygon

다각형 영역의 내부 또는 모서리에 있는 점

설명

예제

in = inpolygon(xq,yq,xv,yv)xqyq로 지정된 쿼리 점이 xvyv로 정의된 다각형 영역의 내부 또는 모서리에 있는지 여부를 나타내는 in을 반환합니다.

예제

[in,on] = inpolygon(xq,yq,xv,yv)는 쿼리 점이 다각형 영역의 모서리에 있는지 여부를 나타내는 on도 반환합니다.

예제

모두 축소

오각형, 그리고 점 집합을 정의합니다. 그런 다음 오각형의 내부 또는 모서리에 배치할 점을 지정합니다.

다각형 꼭짓점의 x 및 y 좌표를 정의하여 오각형을 생성합니다.

L = linspace(0,2*pi,6);
xv = cos(L)';
yv = sin(L)';

250개 임의 쿼리 점의 x 및 y 좌표를 정의합니다. randn의 출력값이 반복되도록 하기 위해 난수 생성기를 초기화합니다.

rng default
xq = randn(250,1);
yq = randn(250,1);

각 점이 다각형 영역의 내부 또는 모서리에 있는지 여부를 확인합니다. 또한 임의의 점이 다각형 영역의 모서리에 있는지 여부를 확인합니다.

[in,on] = inpolygon(xq,yq,xv,yv);

다각형 영역의 내부나 모서리에 있는 점 개수를 확인합니다.

numel(xq(in))
ans = 80

다각형 영역의 모서리에 있는 점 개수를 확인합니다.

numel(xq(on))
ans = 0

다각형 영역의 모서리에 있는 점이 없으므로, xq(in), yq(in)으로 식별된 모든 80개의 점은 명확하게 다각형 영역의 내부에 있습니다.

다각형 영역의 내부나 모서리가 아니라 외부에 있는 점 개수를 확인합니다.

numel(xq(~in))
ans = 170

다각형과 쿼리 점을 플로팅합니다. 다각형 내부에 있는 점을 빨간색 플러스 기호로 표시합니다. 다각형 외부에 있는 점은 파란색 원으로 표시합니다.

figure

plot(xv,yv) % polygon
axis equal

hold on
plot(xq(in),yq(in),'r+') % points inside
plot(xq(~in),yq(~in),'bo') % points outside
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. One or more of the lines displays its values using only markers

정사각형 구멍이 있는 정사각형 내부의 점을 찾습니다.

정사각형 구멍이 있는 정사각형 영역을 정의합니다. 외부 루프의 꼭짓점을 시계 반대 방향으로 지정하고, 내부 루프의 꼭짓점은 시계 방향으로 지정합니다. NaN을 사용하여 외부 루프와 내부 루프의 좌표를 구분합니다.

xv = [1 4 4 1 1 NaN 2 2 3 3 2];
yv = [1 1 4 4 1 NaN 2 3 3 2 2];

500개 임의 점의 x 및 y 좌표를 정의합니다. randn의 출력값이 반복되도록 하기 위해 난수 생성기를 초기화합니다.

rng default
xq = rand(500,1)*5;
yq = rand(500,1)*5;

각 점이 다각형 영역의 내부 또는 모서리에 있는지 여부를 확인합니다.

in = inpolygon(xq,yq,xv,yv);

다각형과 쿼리 점을 플로팅합니다. 다각형 내부에 있는 점을 빨간색 플러스 기호로 표시합니다. 다각형 외부에 있는 점은 파란색 원으로 표시합니다.

figure

plot(xv,yv,'LineWidth',2) % polygon
axis equal

hold on
plot(xq(in),yq(in),'r+') % points inside
plot(xq(~in),yq(~in),'bo') % points outside
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. One or more of the lines displays its values using only markers

정사각형 구멍의 쿼리 점이 다각형의 외부에 있습니다.

펜타그램의 x 및 y 좌표를 정의합니다.

xv = [0.5;0.2;1.0;0;0.8;0.5];
yv = [1.0;0.1;0.7;0.7;0.1;1];

12개 쿼리 점의 x 및 y 좌표를 정의합니다.

xq = [0.1;0.5;0.9;0.2;0.4;0.5;0.5;0.9;0.6;0.8;0.7;0.2];
yq = [0.4;0.6;0.9;0.7;0.3;0.8;0.2;0.4;0.4;0.6;0.2;0.6];

각 점이 다각형 영역의 내부 또는 모서리에 있는지 여부를 확인합니다. 또한 임의의 점이 다각형 영역의 모서리에 있는지 여부를 확인합니다.

[in,on] = inpolygon(xq,yq,xv,yv);

다각형 영역의 내부나 모서리에 있는 점 개수를 확인합니다.

numel(xq(in))
ans = 8

다각형 영역의 모서리에 있는 점 개수를 확인합니다.

numel(xq(on))
ans = 2

다각형 영역의 내부나 모서리가 아니라 외부에 있는 점 개수를 확인합니다.

numel(xq(~in))
ans = 4

다각형과 점을 플로팅합니다. 명확하게 다각형 내부에 있는 점을 빨간색 플러스 기호로 표시합니다. 모서리에 있는 점을 검은색 별표로 표시합니다. 다각형 외부에 있는 점은 파란색 원으로 표시합니다.

figure

plot(xv,yv) % polygon

hold on
plot(xq(in&~on),yq(in&~on),'r+') % points strictly inside
plot(xq(on),yq(on),'k*') % points on edge
plot(xq(~in),yq(~in),'bo') % points outside
hold off

Figure contains an axes object. The axes object contains 4 objects of type line. One or more of the lines displays its values using only markers

6개의 점이 다각형 내부에 있습니다. 2개의 점은 다각형의 모서리에 있습니다. 4개의 점은 다각형 외부에 있습니다.

입력 인수

모두 축소

쿼리 점의 x 좌표로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.

xq의 크기는 yq의 크기와 일치해야 합니다.

데이터형: double | single

쿼리 점의 y 좌표로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.

yq의 크기는 xq의 크기와 일치해야 합니다.

데이터형: double | single

다각형 꼭짓점의 x 좌표로, 벡터로 지정됩니다.

xv의 크기는 yv의 크기와 일치해야 합니다.

다중연결 다각형이나 서로소인 다각형의 꼭짓점을 지정하려면 NaN을 사용하여 개별 루프에 대해 좌표를 구분하십시오. 다중연결 다각형의 경우 추가적으로, 외부 루프와 내부 루프에 대한 꼭짓점을 서로 반대 방향으로 지정해야 합니다.

다각형은 자기교차 및 루프 방향에 대한 모호성으로 인해 자기교차하거나 다중연결할 수 없습니다.

데이터형: double | single

다각형 꼭짓점의 y 좌표로, 벡터로 지정됩니다.

yv의 크기는 xv의 크기와 일치해야 합니다.

다중연결 다각형이나 서로소인 다각형의 꼭짓점을 지정하려면 NaN을 사용하여 개별 루프에 대해 좌표를 구분하십시오. 다중연결 다각형의 경우 추가적으로, 외부 루프와 내부 루프에 대한 꼭짓점을 서로 반대 방향으로 지정해야 합니다.

다각형은 자기교차 및 루프 방향에 대한 모호성으로 인해 자기교차하거나 다중연결할 수 없습니다.

데이터형: double | single

출력 인수

모두 축소

다각형 영역의 내부나 모서리에 있는 점에 대한 표시자로, 논리형 배열로 반환됩니다. inxqyq와 크기가 동일합니다.

  • 논리값 1(true)은 대응하는 쿼리 점이 다각형 영역의 내부에 있거나 다각형 경계의 모서리에 있음을 나타냅니다.

  • 논리값 0(false)은 대응하는 쿼리 점이 다각형 영역의 외부에 있음을 나타냅니다.

따라서 in을 사용하여 xqyq의 요소를 참조하여 관심 있는 쿼리 점을 식별할 수 있습니다.

xq(in), yq(in)다각형 영역의 내부나 모서리에 있는 쿼리 점
xq(~in), yq(~in)다각형 영역의 외부에 있는 쿼리 점

다각형 영역의 모서리에 있는 점에 대한 표시자로, 논리형 배열로 반환됩니다. onxqyq와 크기가 동일합니다.

  • 논리값 1(true)은 대응하는 쿼리 점이 다각형 경계에 있음을 나타냅니다.

  • 논리값 0(false)은 대응하는 쿼리 점이 다각형 경계의 내부 또는 외부에 있음을 나타냅니다.

따라서 onin을 사용하여 xqyq의 요소를 참조하여 관심 있는 쿼리 점을 식별할 수 있습니다.

xq(on), yq(on)다각형 경계에 있는 쿼리 점
xq(~on), yq(~on)다각형 경계의 내부 또는 외부에 있는 쿼리 점
xq(in&~on), yq(in&~on)명확하게 다각형 영역의 내부에 있는 쿼리 점

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목