polyshape

Cria um polígono 2-D, possivelmente com várias regiões e furos, que aceita consultas geométricas e operações booleanas.

Categoria: Mathematics > Computational Geometry

Sintaxe

pshape = polyshape(x, y)

Polígono a partir de vetores de coordenadas dos vértices. NaN separa vários contornos.

pshape = polyshape(P)

Vértices como linhas de uma matriz de duas colunas.

pshape = polyshape(___, 'Simplify', tf)

Desliga o reparo automático da entrada quando tf é false.

pshape = polyshape()

Um polyshape vazio.

Descrição

Um polyshape representa uma região plana delimitada por polígonos. Um contorno dentro de outro vira furo, e contornos que não se tocam viram regiões separadas. A geometria está disponível por funções como area, perimeter, centroid, isinterior, holes, regions, rotate, scale e translate, e pelas operações booleanas union, intersect, subtract e xor.

Quando a entrada tem defeitos, como um contorno em gravata-borboleta que se cruza, o construtor o repara e o divide em partes válidas. Uma entrada degenerada, como três pontos colineares, dá um polyshape vazio com NumRegions igual a 0.

Argumentos de entrada

x, y
Vetores de mesmo comprimento com as coordenadas dos vértices, em ordem ao redor do contorno.
'Simplify'
Lógico. Por padrão (true), o construtor corrige autointerseções, vértices duplicados e orientação, e emite um aviso se precisar.

Argumentos de saída

pshape
Um polyshape com as propriedades somente leitura Vertices (a lista de vértices, contornos separados por linhas NaN), NumRegions e NumHoles.

Exemplo

Duas regiões em um polyshape

P = polyshape([0 1 1 0 NaN 3 5 5 3], [0 0 1 1 NaN 0 0 2 2]);
P.NumRegions
area(P)
centroid(P)
Saída
ans = 2
ans = 5
ans = 1×2

    3.3000    0.9000

Veja também

area subtract addboundary holes isinterior polybuffer