subtract

Diferença booleana de dois polyshapes: o primeiro com o segundo recortado.

Categoria: Mathematics > Computational Geometry

Sintaxe

P = subtract(P1, P2)

Retorna a parte de P1 que não está em P2.

Descrição

Se P2 está totalmente dentro de P1, o resultado é P1 com um furo. Se cruza uma borda, uma reentrância é removida. Se não se sobrepõem, P1 é retornado sem alteração. A ordem dos argumentos importa: subtract(P1, P2) e subtract(P2, P1) são formas diferentes.

As operações companheiras são union, intersect e xor.

Argumentos de entrada

P1
O polyshape do qual se recorta.
P2
O polyshape a remover.

Argumentos de saída

P
A diferença, como novo polyshape. Pode ter furos ou várias regiões.

Exemplo

Fazendo um furo

P = polyshape([0 4 4 0], [0 0 3 3]);
H = polyshape([1 2 2 1], [1 1 2 2]);
D = subtract(P, H);
D.NumHoles
area(D)
Saída
ans = 1
ans = 11

Veja também

union intersect xor holes polyshape