inpolygon
다각형 영역의 내부 또는 모서리에 있는 점
설명
예제
오각형, 그리고 점 집합을 정의합니다. 그런 다음 오각형의 내부 또는 모서리에 배치할 점을 지정합니다.
다각형 꼭짓점의 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

정사각형 구멍이 있는 정사각형 내부의 점을 찾습니다.
정사각형 구멍이 있는 정사각형 영역을 정의합니다. 외부 루프의 꼭짓점을 시계 반대 방향으로 지정하고, 내부 루프의 꼭짓점은 시계 방향으로 지정합니다. 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

정사각형 구멍의 쿼리 점이 다각형의 외부에 있습니다.
펜타그램의 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

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
출력 인수
다각형 영역의 내부나 모서리에 있는 점에 대한 표시자로, 논리형 배열로 반환됩니다. in은 xq 및 yq와 크기가 동일합니다.
논리값
1(true)은 대응하는 쿼리 점이 다각형 영역의 내부에 있거나 다각형 경계의 모서리에 있음을 나타냅니다.논리값
0(false)은 대응하는 쿼리 점이 다각형 영역의 외부에 있음을 나타냅니다.
따라서 in을 사용하여 xq와 yq의 요소를 참조하여 관심 있는 쿼리 점을 식별할 수 있습니다.
xq(in), yq(in) | 다각형 영역의 내부나 모서리에 있는 쿼리 점 |
xq(~in), yq(~in) | 다각형 영역의 외부에 있는 쿼리 점 |
다각형 영역의 모서리에 있는 점에 대한 표시자로, 논리형 배열로 반환됩니다. on은 xq 및 yq와 크기가 동일합니다.
논리값
1(true)은 대응하는 쿼리 점이 다각형 경계에 있음을 나타냅니다.논리값
0(false)은 대응하는 쿼리 점이 다각형 경계의 내부 또는 외부에 있음을 나타냅니다.
따라서 on과 in을 사용하여 xq와 yq의 요소를 참조하여 관심 있는 쿼리 점을 식별할 수 있습니다.
xq(on), yq(on) | 다각형 경계에 있는 쿼리 점 |
xq(~on), yq(~on) | 다각형 경계의 내부 또는 외부에 있는 쿼리 점 |
xq(in&~on), yq(in&~on) | 명확하게 다각형 영역의 내부에 있는 쿼리 점 |
확장 기능
사용법 관련 참고 및 제한 사항:
단정밀도 입력값과 배정밀도 입력값을 지원하지만, 모든 입력값이 단정밀도인 경우에도 배정밀도 연산방식을 사용합니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
inpolygon 함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray (Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
참고 항목
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)