Иллюстрированный самоучитель по MatLab

Анализ попадания точек внутрь полигона

Функция 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.

Иллюстрированный самоучитель по MatLab › Обработка данных › Анализ попадания точек внутрь полигона

Иллюстрированный самоучитель по MatLab › Обработка данных › Анализ попадания точек внутрь полигона
Рис. 17.4. Пример применения функции inpolygon

Точки, попавшие внутрь полигона, обозначены символом звездочки, а точки вне полигона обозначены кружками.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.