inpolygon

Testa quais pontos estão dentro de um polígono ou sobre sua aresta.

Categoria: Mathematics > Computational Geometry

Sintaxe

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

Indica se cada ponto de consulta (xq, yq) está dentro ou sobre o polígono de vértices (xv, yv).

[in, on] = inpolygon(___)

Também retorna quais pontos estão exatamente sobre o contorno do polígono.

Descrição

Um ponto conta como interno quando um raio a partir dele cruza o polígono um número ímpar de vezes. Pontos exatamente sobre uma aresta ou vértice são indicados como dentro em in e também marcados em on, de modo que in & ~on seleciona apenas os pontos estritamente internos.

O polígono pode ser côncavo ou autointersectante; regiões cobertas um número par de vezes são tratadas como externas.

Argumentos de entrada

xq, yq
Coordenadas dos pontos de consulta; arrays do mesmo tamanho.
xv, yv
Vetores com os vértices do polígono. O polígono é fechado automaticamente.

Argumentos de saída

in
Array lógico do tamanho de xq: true para pontos dentro ou sobre o contorno.
on
Array lógico: true para pontos sobre o contorno.

Exemplo

Dentro, na aresta, fora

xv = [0 1 1 0];
yv = [0 0 1 1];
[in, on] = inpolygon([0.5 1 2], [0.5 0.5 2], xv, yv)
Saída
in = 1×3 logical array

   1   1   0
on = 1×3 logical array

   0   1   0

Veja também

isinterior polyshape polyarea convhull