rmslivers

Remove partes finas de um polyshape mais estreitas que uma largura dada.

Categoria: Mathematics > Computational Geometry

Sintaxe

pshape = rmslivers(pshape, tol)

Elimina partes da forma que são mais finas que cerca de tol.

Descrição

Fragmentos finos aparecem como artefatos de operações booleanas ou de buffer: espinhos muito finos, ou faixas que ligam duas peças. rmslivers os remove deixando o corpo principal quase inalterado. Um tol maior remove características mais grossas, então escolha-o pequeno em relação às características que importam.

Argumentos de entrada

pshape
Um objeto polyshape.
tol
Limite de largura não negativo, em unidades de coordenadas.

Argumentos de saída

pshape
O polyshape limpo. Fragmentos finos que somem podem reduzir NumRegions.

Exemplo

Eliminando uma faixa fina

A = polyshape([0 2 2 0], [0 0 2 2]);
B = addboundary(A, [5 5.02 5.02 5], [0 0 2 2]);
C = rmslivers(B, 0.05);
[area(B) area(C)]
C.NumRegions
Saída
ans = 1×2

    4.0400    4.0000
ans = 1

Veja também

polybuffer rmboundary issimplified polyshape