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:truepara pontos dentro ou sobre o contorno. on- Array lógico:
truepara 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