polybuffer

Создайте буфер вокруг точек, линий или polyshape объекты

Описание

пример

polyout = polybuffer(P,'points',d) возвращает polyshape объект с контурами, которые буферизуют 2D точки в P расстоянием d. polybuffer функция вычисляет буфер путем взятия объединения кругов радиуса d сосредоточенный в каждой точке в P. Первый столбец матричного P содержит x - координаты точек, чтобы буферизовать и второй столбец содержат соответствующий y - координаты.

Если вы создаете polyshape объект polyout, можно анализировать его свойства или выполнить дополнительные расчеты с помощью polyshape функции. Например, можно получить доступ к вершинам, которые задают буферизированную форму со свойством polyout.Vertices, и можно построить форму с помощью команды plot(polyout).

пример

polyout = polybuffer(P,'lines',d) возвращает polyshape объект с контурами, которые буферизуют линейные сегменты, заданные 2D точками в P. polybuffer функция вычисляет буфер путем перемещения круга радиуса d вдоль линейных сегментов, созданных точками ввода, сосредоточенными на линейных сегментах.

пример

polyout = polybuffer(P,'lines',d,'JointType',jt) задает, как места встречи конечных точек линейного сегмента (соединения) обработаны. Например, polybuffer(P,'lines',d,'JointType','square') смело встречает соединения.

polyout = polybuffer(P,'lines',d,'JointType','miter','MiterLimit',lim) задает предельный угол стыка, когда объединенный тип задан как 'miter'. Предельный угол стыка является максимальным допустимым отношением между расстоянием, объединенная вершина перемещена и буферное расстояние d. Предел lim должен быть больше или быть равен 2.

пример

polyout = polybuffer(polyin,d) возвращает polyshape объект с контурами, которые буферизуют вход polyshape объект polyin расстоянием d. Для положительных значений d, твердые контуры области polyin расширьтесь d модули и контуры отверстия уменьшаются d модули. Отрицательные величины d уменьшите твердые контуры и расширьте контуры отверстия.

пример

polyout = polybuffer(polyin,d,'JointType',jt) задает как соединения polyshape обработаны, когда первым входным параметром является polyshape.

polyout = polybuffer(polyin,d,'JointType','miter','MiterLimit',lim) задает предельный угол стыка, когда объединенный тип задан как 'miter' и первым входным параметром является polyshape.

Примеры

свернуть все

Создайте матрицу, которая содержит 2D координаты трех точек. Затем создайте polyshape возразите, что буферизует каждую точку расстоянием 0,25 модулей.

P = [0 0; 1 1; 2 1];
polyout = polybuffer(P,'points',0.25)
polyout = 
  polyshape with properties:

      Vertices: [542x2 double]
    NumRegions: 3
      NumHoles: 0

Постройте исходные точки и их буферные области.

plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout)
axis equal

Создайте буферные области окружающие линейные сегменты.

Создайте матрицу 2D точек и вычислите polyshape возразите, что буферизует линейные сегменты, соединяющие точки.

P = [0 0; 1 1; 2 1];
polyout1 = polybuffer(P,'lines',0.25);
plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout1)
axis equal
hold off

По умолчанию, polybuffer закругляет соединения то подключение линейные сегменты. Можно управлять формой соединений при помощи 'JointType' пара "имя-значение". Например, используйте значение 'miter' сохранить угол, соединяющий эти два линейных сегмента.

figure
polyout2 = polybuffer(P,'lines',0.25,'JointType','miter');
plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout2)
axis equal

Создайте многоугольник с твердым контуром и контуром отверстия. Затем создайте буфер на расстоянии 0,1 от контуров. По умолчанию буфер округлил соединения.

polyin = polyshape({[0 0 1 3],[0.5 1.5 1.5 0.5]},{[0 3 3 0],[0.5 0.5 1.5 1.5]});
plot(polyin)
polyout1 = polybuffer(polyin,0.1);
hold on
plot(polyout1)
hold off

Создайте буфер с помощью предельного угла стыка 2. Предельный угол стыка управляет заостренностью соединений.

polyout2 = polybuffer(polyin,0.1,'JointType','miter','MiterLimit',2);
plot(polyin)
hold on
plot(polyout2)

Входные параметры

свернуть все

Введите вершины 2D точек в виде числовой матрицы с 2 столбцами. Первый столбец P содержит x - координаты и второй столбец содержат соответствующий y - координаты.

Введите polyshapeВ виде скаляра, вектора, матрицы или многомерного массива. Когда polyin массив polyshape объекты, polybuffer применяет заданные буферные параметры к каждому элементу.

Буферное расстояние в виде числового скаляра.

Когда первый входной параметр является набором вершин, d должен быть положительный числовой скаляр.

Когда первым входным параметром является polyshapeD может быть положительным, отрицательным, или нуль:

  • Если d>0, затем твердые контуры выращивают расстоянием d и уменьшение контуров отверстия.

  • Если d<0, затем твердые контуры уменьшают расстоянием d и контуры отверстия растут.

  • Если d=0, затем нет никакого изменения во входных контурах.

Объединенный тип для буферных контуров в виде одного из следующего:

  • 'round' — Закруглите граничные углы.

  • 'square' — Смело встретьте граничные углы.

  • 'miter' — Ограничьте отношение между расстоянием, объединенная вершина перемещена и буферное расстояние до 3. Этот предел предотвращает чрезмерную заостренность.

Когда первый входной параметр является набором вершин, polybuffer применяет объединенный тип только там, где конечные точки двух линейных сегментов встречаются, а не в открытой конечной точке линейного сегмента.

Когда первым входным параметром является polyshapeполибуфер только применяет объединенный тип к твердым контурам, когда буферное расстояние положительно, или для контуров отверстия, когда буферное расстояние отрицательно.

Предельный угол стыка в виде положительного числового скаляра, больше, чем или равный 2. Предельный угол стыка является отношением между расстоянием, объединенная вершина перемещена и буферное расстояние. Установка предельного угла стыка управляет заостренностью граничных соединений.

Смотрите также

|

Введенный в R2017b