Анализ попадания
точек внутрь полигона
Функция Inpolygon
используется для анализа того, попадают ли заданные точки внутрь полигона:
-
IN=inpolygon(X,Y.xv.yv)
— возвращает матрицу IN того же размера, что X и Y. Каждый элемент матрицы
IN принимает одно из значений — 1, 0.5 или 0 — в зависимости от того, находится
ли точка с координатами (X(p,q),Y(p,q)) внутри полигона, вершины которого
определяются векторами xv и yv:
-
IN(p,q)
= 1 — если то.чка (X(p.q) ,Y(p,q)) лежит внутри полигона;
-
IN(p,q)
= 0.5 — если точка (X(p,q) ,Y(p,q)) лежит на границе полигона;
-
IN(p.q)
= 0 — если точка (X(p.q),Y(p,q)) лежит вне полигона. Пример:
»
L = linspace(0.2*pi,8);
»
yv = sin(L)';
»
xv= cos(L)';
»
x= randn(100,1); у = randn(100,1);
»
IN = inpolygon(x,y,xv,yv);
»
plot(xv,yv,'k',x(IN),y(IN),'r*',x(~IN),y(~IN),'b*')
Построенные
в этом примере массив точек и полигон представлены на рис. 17.4.
Рис.
17.4.
Пример применения функции inpolygon
Точки, попавшие
внутрь полигона, обозначены символом звездочки, а точки вне полигона обозначены
кружками.
Содержание раздела