polybuffer
Aumenta ou reduz um polyshape por uma distância fixa.
Categoria: Mathematics > Computational Geometry
Sintaxe
pb = polybuffer(pshape, d)
Desloca os contornos pela distância d: para fora se d é positivo, para dentro se negativo.
pb = polybuffer(pshape, d, 'JointType', type)
Escolhe como os cantos são tratados: 'round' (padrão), 'square' ou 'miter'.
Descrição
O buffer é o conjunto de pontos a distância até d da forma. Para um retângulo 4 por 3 expandido de 1 com cantos arredondados, a área é 12 + 14*1 + pi: o original, quatro faixas ao longo dos lados e quatro quartos de disco nos cantos. Juntas em esquadria mantêm os cantos vivos, então a área sobe para 30 no mesmo exemplo.
Os furos encolhem quando a forma cresce e se fecham quando o deslocamento excede o tamanho deles.
Argumentos de entrada
pshape- Um objeto
polyshape. d- Distância de deslocamento. Um valor negativo reduz a forma e pode fazê-la desaparecer ou se dividir.
'JointType'- Estilo dos cantos. Cantos arredondados são arcos de raio
d, cantos em esquadria mantêm o ângulo vivo, cantos quadrados são cortados retos.
Argumentos de saída
pb- O
polyshapedeslocado.
Exemplo
Crescimento arredondado e em esquadria
P = polyshape([0 4 4 0], [0 0 3 3]);
rounded = polybuffer(P, 1);
mitered = polybuffer(P, 1, 'JointType', 'miter');
fprintf('%.4f\n', area(rounded), area(mitered))
Saída
29.1410
30.0000